现有一个问题希望得到大家的帮助:
有字符串类型的SQL语句,例如:string sqlstr = "select * from table where ...ordre by ..."如何在oracle数据库中执行这个变量的中的SQL语句,并且有结果集返回
用这样的方法
declare sqlstmt varchar2(500)
begin
sqlstmt := 'select * from table where ...ordre by ...';
execute immediate sqlstmt;
end;
发现没有结果集返回。类似的处理在MSSQL中可以用EXECUTE关键字实现。请问在oracle中如何解决。Oracle
有字符串类型的SQL语句,例如:string sqlstr = "select * from table where ...ordre by ..."如何在oracle数据库中执行这个变量的中的SQL语句,并且有结果集返回
用这样的方法
declare sqlstmt varchar2(500)
begin
sqlstmt := 'select * from table where ...ordre by ...';
execute immediate sqlstmt;
end;
发现没有结果集返回。类似的处理在MSSQL中可以用EXECUTE关键字实现。请问在oracle中如何解决。Oracle
解决方案 »
- 表空间的一个小问题
- 关于ORACLE 10G 数据库当前已关闭
- PL/SQl怎么测试一个sql语句的性能?
- 为什么ORACLE 10g 的触发器创建无反应?
- 我在安装oracle9i后一切正常,能通过delphi(BDE)连接到oracle,但重新启动时报错啊19011
- 一个关于加工工作日的SQL查询
- 帮我看看下面这个update语句,在SQL SERVER里可以,在ORACLA里怎么不行??
- oracle安装最后口令设置问题?Help!
- 将数据库中的数据删除后,怎样压缩表空间。
- 客户端是ORACLE805能访问服务器的ORACLE9i吗?
- 删除表数据
- 请高手指点一下,服务器突然断电,oracle数据库登录不了
比如:
[code=sql][/DECLARE v VARCHAR2(20);
BEGIN
EXECUTE IMMEDIATE 'select 12 from dual' INTO v;
dbms_output.put_line(v);
END;code]
BEGIN
EXECUTE IMMEDIATE 'select 12 from dual' INTO v;
dbms_output.put_line(v);
END;
楼上已经告诉了方法
符号 ";" 被替换为 "end-of-file" 后继续。 ORA-06550: 第 5 行, 第 3 列:
PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
;
<an identifier> <a double-quoted delimited-identifier>
符号 ";" 被替换为 "end-of-file" 后继续。
符号 ";" 被替换为 "end-of-file" 后继续。 ORA-06550: 第 5 行, 第 3 列:
PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
;
<an identifier> <a double-quoted delimited-identifier>
符号 ";" 被替换为 "end-of-file" 后继续。
#2的是好的呀。DECLARE
v VARCHAR2(20);
BEGIN EXECUTE IMMEDIATE 'select 12 from dual' INTO v;
dbms_output.put_line(v);
END;
v varchar2(20);
begin
execute immediate 'select 15 from dual' into v;
dbms_output.put_line(v);
end;语句经过测试是没问题的!