oracle 用trigger动态创建表格
各位大哥大姐.
小弟在创建trigger 遇到一个问题.帮帮忙吧!
在表eqdb_platform 中插入记录 之前先检查 相关联另外的一个表格是不是存在. 如果不存在就创建.
CREATE OR REPLACE TRIGGER eqdb_platform_bi
BEFORE INSERT ON eqdb_platform
FOR EACH ROW
DECLARE
v_count int ;
v_platform VARCHAR2(10) ;
v_area VARCHAR2(10) ;
v_tablename VARCHAR2(20);
sql_stmt VARCHAR2(200);
BEGIN
v_platform := :NEW.platform;
v_tablename := :NEW.tablename;
v_area := :NEW.area;
SELECT count(*) INTO v_count from user_tables
WHERE table_name=v_tablename;
IF v_count < 1 THEN
sql_stmt := 'CREATE TABLE '|| v_tablename || ' AS SELECT * from EQDB_DETAILS_J971 WHERE rownum < 1';
EXECUTE IMMEDIATE sql_stmt;
END IF;
END;
trigger 创建时 没问题. 执行时出错.
SQL> /
Trigger created.
SQL> INSERT INTO eqdb_platform(platform,tablename,vendor,area) values ('J973','EQDB_DETAILS_J973','Teradyne','Probe')
2 ;
INSERT INTO eqdb_platform(platform,tablename,vendor,area) values ('J973','EQDB_DETAILS_J973','Teradyne','Probe')
*
ERROR at line 1:
ORA-04092: cannot COMMIT in a trigg
相关问答:
大家好,我现在把oracle服务器上面的原始文件,下载到本机了.我想在本机访问数据库怎么设置啊.是不是类似可以建立一个什么虚拟服务器来实现.请大家出出主意
引用
大家好,我现在把oracle服务器上面 ......
private static final String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
private static final String USERNAME = "sys";
private static final String PASSWORD = "s ......
两个文件1.PC,1.inc
1.PC有操作oracle数据库的 ,1.inc也有操作oracle数据库
在其他数据中如informix 中$include 1.inc就可以使用了
在ORACLE数据库重 $include 1.inc不可用 EXEC SQL include 1.inc也不可 ......
oracle 11g 安装 01092 错误,
日志信息:
[oracle@linux trace]$ vi alert_orcl.log
MMON started with pid=14, OS id=9089
RESETLOGS after incomplete recovery UNTIL CHANGE 522752
Errors in file / ......