郑州做网站公司电话,网站建设 体会,外贸营销系统,网站高级?O置在PL/SQL块中不能直接执行DDL语句(后篇批量删除表时却明明在PL/SQL块中使用了DROP#xff0c;而且执行成功#xff0c;厄...自打三十大板...谁来救我...)declarev_string varchar2(1000);beginv_string:create table dm_test as select * from dm_mpg_test where nyr20… 在PL/SQL块中不能直接执行DDL语句(后篇批量删除表时却明明在PL/SQL块中使用了DROP而且执行成功厄...自打三十大板...谁来救我...) declare v_string varchar2(1000);begin v_string:create table dm_test as select * from dm_mpg_test where nyr20080101;; execute immediate v_string;end;如上执行将报错。虽然PL/SQL块不可以直接执行DDL命令但是可以通过DBMS_OUTPUT程序包执行。 declare v_cursor integer; v_sql varchar2(500); v_tablename varchar2(10) :dm_test; v_tablecolumn varchar2(100) :kh varchar2(10),nyr varchar(10);begin v_cursor:dbms_sql.open_cursor; v_sql:CREATE TABLE || v_tablename || ( || v_tablecolumn || ); dbms_sql.parse(v_cursor, v_sql, dbms_sql.v7); dbms_sql.close_cursor(v_cursor); end; SQL desc dm_test;Name Type Nullable Default Comments ---- ------------ -------- ------- -------- KH VARCHAR2(10) Y NYR VARCHAR2(10) Y SQL 转载于:https://blog.51cto.com/dongdong1314/207982