急。。。。关于oracle的错误

小MAY 2008-03-19 06:44:46

请大家看一下,到底是哪里错误,我的头都晕了
create table test
(
name varchar2(20),
address varchar2(20)
);

select * from test;

declare
str varchar2(500);
c_1 varchar2(20);
r_1 test%rowtype;
begin
c_1:='测试人员';
str:='select * from test where name=:C WHERE ROWNUM=1';
execute immediate str into r_1 using c_1;
DBMS_OUTPUT.PUT_LINE(r_1.name||r_1.address);
end ;
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
iihero_ 2008-03-22
  • 打赏
  • 举报
回复
因为表是空表,没有数据,所以出错。
添加一条记录就可以了。

insert into test values('测试人员', 'abcdef');
SQL> declare
2 str varchar2(500);
3 c_1 varchar2(20);
4 r_1 test%rowtype;
5 begin
6 c_1:='测试人员';
7 str:='select * from test where name=:C and ROWNUM=1';
8 execute immediate str into r_1 using c_1;
9 DBMS_OUTPUT.PUT_LINE(r_1.name ||r_1.address);
10 end;
11 /

PL/SQL 过程已成功完成。

PL/SQL 过程已成功完成。

SQL> set serverout on
SQL> /
测试人员abcdef
小MAY 2008-03-21
  • 打赏
  • 举报
回复
create table test
(
name varchar2(20),
address varchar2(20)
);

select * from test;

declare
str varchar2(500);
c_1 varchar2(20);
r_1 test%rowtype;
begin
c_1:='测试人员';
str:='select * from test where name=:C and ROWNUM=1';
execute immediate str into r_1 using c_1;
DBMS_OUTPUT.PUT_LINE(r_1.name||r_1.address);
end ;

改过来,报未找到数据的错误!!!!晕了!!!
ronnyma_mawei 2008-03-19
  • 打赏
  • 举报
回复
嗷嗷
hebo2005 2008-03-19
  • 打赏
  • 举报
回复
'select * from test where name=:C WHERE ROWNUM=1'
两个WHERE啊
应该是这样的吧
'select * from test where name=:C and ROWNUM=1'

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧