1樓:手機使用者
有時需要在oracle 儲存過程中執行動態sql 語句 ,例如表名是動態的,或字段是動態的,
或查詢命令是動態的,可用下面的方法:
set serveroutput ondeclaren number;sql_stmt varchar2(50);
t varchar2(20);beginexecute immediate 'alter session set nls_date_format=''yyyymmdd''';
t := 't_' || sysdate;
sql_stmt := 'select count(*) from ' || t;
execute immediate sql_stmt into n;
dbms_output.put_line('the number of rows of ' || t || ' is ' || n);end;
如果動態sql 語句 很長很複雜,則可用包裝.
create or replace package test_pkgistype cur_typ is ref cursor;
procedure test_proc (v_table varchar2,t_cur out cur_typ);end;/
create or replace package body test_pkgisprocedure test_proc (v_table varchar2,t_cur out cur_typ)issqlstr varchar2(2000);beginsqlstr := 'select * from '||v_table;
open t_cur for sqlstr;end;end;/
在oracle 中批量匯入,匯出和刪除表名以某些字元開頭的表
spool c:\a.sql
oracle儲存過程中如何執行動態sql語句
2樓:納蘭
有時需要在oracle 儲存過程中執行動態sql 語句 ,例如表名是動態的,或字段是動態的,或查詢命令是動態的,可用下面的方法: set serveroutput on declare n number; sql_stmt varchar2(50); t varchar2(20); begin execute immediate 'alter session set nls_date_format=''yyyymmdd'''; t := 't_' || sysdate; sql_stmt :
= 'select count(*) from ' || t; execute immediate sql_stmt into n; dbms_output.put_line('the number of rows of ' || t || ' is ' || n); end; 如果動態sql 語句 很長很複雜,則可用包裝. create or replace package test_pkg is type cur_typ is ref cursor; procedure test_proc (v_table varchar2,t_cur out cur_typ); end; / create or replace package body test_pkg is procedure test_proc (v_table varchar2,t_cur out cur_typ) is sqlstr varchar2(2000); begin sqlstr :
= 'select * from '||v_table; open t_cur for sqlstr; end; end; / 在oracle 中批量匯入,匯出和刪除表名以某些字元開頭的表 spool c:\a.sql select 'drop table ' || tname || ';' from tab where tname like 't%'; spool off @c:\a
如何在oracle儲存過程中執行動態sql語句
3樓:尐i強
時需要在oracle 儲存過程中執行動態sql 語句 ,例如表名是動態的,或字段是動態的,
或查詢命令是動態的,可用下面的方法:
set serveroutput ondeclaren number;sql_stmt varchar2(50);
t varchar2(20);beginexecute immediate 'alter session set nls_date_format=''yyyymmdd''';
t := 't_' || sysdate;
sql_stmt := 'select count(*) from ' || t;
execute immediate sql_stmt into n;
dbms_output.put_line('the number of rows of ' || t || ' is ' || n);end;
如果動態sql 語句 很長很複雜,則可用包裝.
create or replace package test_pkgistype cur_typ is ref cursor;
procedure test_proc (v_table varchar2,t_cur out cur_typ);end;/
create or replace package body test_pkgisprocedure test_proc (v_table varchar2,t_cur out cur_typ)issqlstr varchar2(2000);beginsqlstr := 'select * from '||v_table;
open t_cur for sqlstr;end;end;/
在oracle 中批量匯入,匯出和刪除表名以某些字元開頭的表
spool c:\a.sql
儲存過程中的動態sql有函式怎麼呼叫
在儲存過程中如何執行動態sql語句、是sql資料庫 是個帶引數的儲存過程,用來拼接sql語句的
4樓:匿名使用者
declare @s varchar(32) ,@dd varchar(32)
set @s ='select * from '
set @dd =' table_cs'
exec (@s + @dd)
5樓:匿名使用者
exec('select * from table')
6樓:
declare @sql nvarchar(max)
select @sql= 'select ....'
exec(@sql)
sql儲存過程中如何使用declare有的儲存過程宣告瞭,有的沒有宣告。請回答的詳細點。。謝謝
如果你把儲存過程看作是批處理語句就好理解多了!儲存過程只不過是一個帶著名稱的sql批處理語句,如果在整個過程中需要變數時就是可以宣告,但該變數宣告後只能存活在批處理 儲存過程 的執行中,執行完畢後就會消失,這種宣告的格式就是 declare 變數名 型別 其中變數名為了與資料庫中的列名相互區別,所以...
儲存過程中引數是動態的,需要判斷是否為空
1 新建乙個html檔案,命名為test.html。2 在test.html檔案內,使用function宣告乙個函式,str為函式的引數。3 在is e 函式內,首先使用if語句進行null 空 undefined的情況判斷,如果符合,則彈出 內容為空 的提示。4 在is e 函式內,再使用正規表示...
怎樣在滑冰的過程中保護自己,輪滑過程中怎樣安全保護自己
於安乾 http www.ycen.com.cn gb content 2005 12 25 content 316358.htm 初次上冰前先要佩戴護肘 護膝 手套,頭盔等防護用具,選擇好合適的冰鞋。a 穿冰鞋 初學滑冰的人穿冰鞋時,前兩三個釦眼的鞋帶可系得稍微鬆一點兒,後面的鞋帶要繫緊,腳腕子在...