请问各位高手在 oracle 中 如何编写 存储过程 SQL实现动态查询
解决方案 »
- latch:library cache影响数据库性能
- oracle10g通过透明网关访问sqlserver2008
- orcale还原,有什么程序可以用否
- oracle调用函数问题??急!!!
- 我的问题没一个回答,是不是因为很难??
- 各位高手,oracle与磁盘阵列,怎么排合适
- 自定义的函数作为默认值,老出错!!!!;-<
- asp.net dataset oracle oci.dll
- 为何rst.recordcount为-1
- Red Hat Enterprise Linux Server 5
- 在PL/SQL中,游标关闭与不关闭有什么区别,对程序的影响怎么样?请高手解答下
- 插入后update与将字段计算出来后插入哪个快一些啊?大家讨论一下
-- Local variables here
i integer;
SqlString varchar2(500);
Ctest sys_refcursor;
TableName tab.tname%type;
begin
-- Test statements here
SqlString:='select tname from tab';
open Ctest for sqlstring;
fetch Ctest into TableName;
while Ctest%found loop
dbms_output.put_line(TableName);
fetch Ctest into TableName;
end loop;
Close Ctest;
end;
----------------
A Simple Test
v_sql varchar2(100);
begin
v_sql:'select * from tab';
execute immediate v_sql;
end
create or replace procedure is
v_sql varchar2(100);
begin
v_sql:'select * from tab';
execute immediate v_sql;
end
中可以将fetch结果放到 ref cursor中吗?
v_Cursorid Integer;
v_c1 Number;
v_c2 Number;
v_c3 Number;
v_c4 Number;
v_Ignore Integer;
v_sql_statement_c:='select * from table';--定義cursor
v_Cursorid := Dbms_Sql.open_cursor;
Dbms_Sql.parse(v_Cursorid,v_sql_statement_c,Dbms_Sql.native);
Dbms_Sql.define_column(v_Cursorid,1,v_c1);
Dbms_Sql.define_column(v_Cursorid,2,v_c2);
Dbms_Sql.define_column(v_Cursorid,3,v_c3);
Dbms_Sql.define_column(v_Cursorid,4,v_c4);--執行Sql 並把結果放到cursor中
Begin
v_Ignore:=Dbms_Sql.execute(v_Cursorid);
Exception When Others Then
Dbms_Output.Put_Line('SQL Execute Error!!');
End;
比如像ref cursor 保存结果。
单行动态select 或 dml 语句可以使用
koujm(koujm) 的方法!