存盤程序按日期來新建一個表,并洗掉之前的資料,編譯通過,存盤程序測驗的DBMS也有陳述句輸出,但是表沒有新增。
create or replace procedure P_ZT_CREATE_102 as
v_crdate varchar2(20);
v_dedate varchar2(20);
v_sql varchar2(4000);
v_table1 varchar2(20);
v_table2 varchar2(20);
begin
v_crdate:=substr(to_char((sysdate),'yyyymmdd'),3);
v_dedate:=substr(to_char((sysdate -5),'yyyymmdd'),3);
v_table1 := 'order_list_'||v_crdate;
v_table2 := 'order_list_'||v_dedate;
v_sql :='create table '|| v_table1|| ' as select * from order_list';
dbms_output.put_line(v_sql);
v_sql := 'drop table '||v_table2;
dbms_output.put_line(v_sql);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('創建不成功');
end P_ZT_CREATE_102;


uj5u.com熱心網友回復:
你沒有commit提交,怎么會新增?uj5u.com熱心網友回復:
你沒有執行建表陳述句。dbms_output.put_line(v_sql);
execute immediate v_sql; -- 加上這句。
uj5u.com熱心網友回復:
v_sql :='create table '|| v_table1|| ' as select * from order_list';dbms_output.put_line(v_sql);
你只是列印,你的v_sql就木有執行(immediate)哇
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/85214.html
標籤:基礎和管理
上一篇:win2008 anzhuang tortoisesvn
下一篇:oracle資料庫匯出
