现有一个问题希望得到大家的帮助:
有字符串类型的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
比如:
[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;语句经过测试是没问题的!