【发布时间】:2013-10-09 01:53:15
【问题描述】:
其实我对 PL/SQL 还是很陌生
我在 SQL Fiddle 中使用 oracle pl/sql 创建了下表
create table Employee(name varchar2(100),id integer, salary integer,PRIMARY KEY(id));
insert into Employee(name,id,salary) values('sa',94,100);
insert into Employee(name,id,salary) values('pr',88,150);
insert into Employee(name,id,salary) values('ji',33,900);
insert into Employee(name,id,salary) values('na',24,880);
insert into Employee(name,id,salary) values('po',65,770);
insert into Employee(name,id,salary) values('ri',69,910);
insert into Employee(name,id,salary) values('uj',12,650);
insert into Employee(name,id,salary) values('ad',43,440);
insert into Employee(name,id,salary) values('sam',40,550);
我执行了以下查询
DECLARE
employee_record Employee%ROWTYPE;
BEGIN
select * into employee_record from Employee where id>90;
dbms_output.put_line(employee_record.name||' '||employee_record.id||' '||employee_record.salary);
END;
/
我得到以下输出
Record Count: 0; Execution Time: 2ms
它应该打印员工记录中存在的值,对吗?我的 sql 查询有问题还是 sql fiddle 无法显示 dbms_output 有问题?
【问题讨论】:
-
不,SQL Fiddle 不会打印出任何东西,因为它没有被这样编码。如果您下载 Oracle(有免费版本)并使用不同的客户端将其打印出来,那么您将获得输出。
-
非常感谢。无论如何我可以在 sql fiddle 中验证我的答案吗?
-
实际上您没有执行查询,而是执行 PL/SQL 代码块 :) 要回答您的问题,您只需运行查询以获取结果: SELECT * FROM Employee WHERE id > 90;检查这个:sqlfiddle.com/#!4/7417b5/7
-
我正在尝试学习 PL/SQL 中的编码 :)
-
那么,按照Ben的建议,你应该下载一个Oracle数据库服务器,它是免费的,你可以在这里下载(我推荐11g R2,但你最好从最新版本开始, 即 12c): oracle.com/technetwork/database/enterprise-edition/downloads/…