create or replace procedure myTbl
as
lvDate varchar2(50);
lvSql varchar2(1000);
begin
lvsql := 'create table mytbl ( id number(5))';
dbms_output.put_line(lvsql);
EXECUTE IMMEDIATE lvsql;
end;1)以上需要8i及以上版本。
2)触发器的脚本,只是改变lvsql的内容
as
lvDate varchar2(50);
lvSql varchar2(1000);
begin
lvsql := 'create table mytbl ( id number(5))';
dbms_output.put_line(lvsql);
EXECUTE IMMEDIATE lvsql;
end;1)以上需要8i及以上版本。
2)触发器的脚本,只是改变lvsql的内容
解决方案 »
- table 重命名之后,访问partition数据为空,请赐教。
- oracal 10g
- 如何将oracle8i的数据(.DMP文件)导入到oracle10g中
- sql语句检测问题?
- oracle中jdbc怎样写?,是oracle.jdbc.OracleDriver?
- v$session里的连接的会话怎么才能被真正的KILL掉??
- 请问我在服务上的OracleOraHomeAgent无法启动,该怎么办?
- 用户管理——怎么办才好?
- 救火!救命!有关如何从8i数据库中抓取建表的sql( 再线等)
- 这句sql 该如何优化啊??哪位帮帮我,谢谢啦!!
- 紧急求助:时间格式转换!
- Enterprise Manager Console和SQL Plus的问题
否则只能调用dbma_sql包
CREATE OR REPLACE PROCEDURE exec(STRING IN varchar2) AS
cursor_name INTEGER;
ret INTEGER;
str varchar2(500);
BEGIN
cursor_name := DBMS_SQL.OPEN_CURSOR;
str:='create table test1 as select * from table_name';DDL statements are run by the parse call, which performs the implied commit. DBMS_SQL.PARSE(cursor_name, str, DBMS_SQL.native);
ret := DBMS_SQL.EXECUTE(cursor_name);
DBMS_SQL.CLOSE_CURSOR(cursor_name);
END;