儲存過程動態表名

2021-08-05 20:46:09 字數 1817 閱讀 6963

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...