create or replace procedure bxsp_data_qb(
startdate in varchar2, --開始日期
enddate in varchar2, --結束日期
feetype in varchar2, --費用型別
procesnode in varchar2, --流程節點
auditor in varchar2 --審批人)is
v_startdate date; --開始日期
v_enddate date; --結束日期
v_bostitle varchar2(200); --標題
v_emanem varchar2(50); --報銷人
v_acctdate varchar2(50); --報銷日期
v_bosnum varchar2(30); --報銷流水號
v_nreserved1 varchar2(20); --報銷總金額
v_tablename varchar2(200);
v_sql varchar2(200);
cursor c_job is
--查詢表名
select distinct ts.exttbl from t_bb_bomdes ts where ts.bomid='zx_tzqb';
begin
d_startdate := to_date(trim(startdate), 'yyyy-mm-dd');
d_enddate := to_date(trim(enddate), 'yyyy-mm-dd');
open c_job;
fetch c_job into v_tablename;
if c_job % found then
v_sql :='select distinct
tcx.bostitle,
tcx.emname,
tcx.acct_date,
tcx.bosnum,
tcx.nreserved1
into
v_bostitle,
v_emanem,
v_acctdate,
v_bosnum,
v_nreserved1
from
t_bb_cbobase tce,
t_wf_workitem tm,
t_bo_employee te,
|| v_tablename || tcx,
where
tm.bosid = tcx.bosid
and tcx.expenser = te.empid
and tce.bosdate between v_startdate and v_enddate
and tm.wkiuser = auditor
and tm.wkiname=procesnode
and tm.wkiprinumb !='0'';
execute immediate v_sql;
end if;
close c_job;
end bxsp_data_qb;
begin
execute immediate bxsp_data_qb('20170101','20170701','zx_tzqb','付款經辦','2179708');
end;
mysql 儲存過程 動態表名
想寫乙個儲存過程,實現不同的庫下不同表的查詢功能,發現表名傳遞跟其他變數不一樣 delimiter create procedure proc begin set v databasename unibiz0122013 set v tablename mail open 05 set v sql ...
儲存過程動態表名時變數的輸出
處理資料時遇到下面這個問題.貼出解決辦法 問題描述 在儲存過程中我定義了兩個引數,filed代表乙個列,tablename代表表名,乙個變數 sqlstr代表sql語句,以下語句 select sqlstr select top 1 field from tablename exec sqlstr ...
PLSQL 儲存過程動態建立表
1 sqlplus登入 sqlplus又叫sql plus,是oracle資料庫操作最重要的工具,它既可以編輯sql語句,也可以編輯和除錯pl sql的程式。在 開始 的 執行 中敲入 cmd 在dos裡面輸入 sqlplus nolog 再回車,接著輸入 conn sys wengyupeng o...