1、Windows
当触发器执行时有DDL操作,报错“当前触发器不支持DDL语句”。需要在数据库目录下面的ini文件中增加DDL_TV_TRIGGER该参数解决;默认情况下,该参数值为0是关闭的;
首先查询配置文件中参数名称包含DDL;
select * from v$dm_ini where para_name like ‘%DDL%’;
第一种解决方案
手动修改数据库下dm.ini的参数信息
1、找到DM数据库安装目录,找到data文件,找到数据库文件夹, 打开dm.ini。添加参数;
步骤:
安装目录——data——数据库——dm.ini
粘贴(这个位置尽量DDL自动提交的参数放在一起)
DL_TV_TRIGGER= 1 #Whether support ddl for table trigger
第二种解决方案:修改配置参数的方法(第一次配置不适合)
SP_SET_PARA_VALUE(2,'DDL_TV_TRIGGER',1)
备注:在手动新增参数前,要看一下文件中是否存在,不存在,才能新增;
不管哪种方式,都需要重启服务
2、Linux系统下操作
1、使用Xshell 连接数据库服务器(用户名,密码找****)
2、命令步骤
cd ../
cd opt/
cd dmdbms/
cd data/
cd DAMENG/
3、使用Xftp 把dm.ini 放到本地,在DDL_AUTO_COMMIT 下增加参数
DDL_TV_TRIGGER= 1 #Whether support ddl for table trigger
4、查看数据库状态
systemctl status DmServiceDMSERVER.service
5、重启数据库
systemctl restart DmServiceDMSERVER.service
最后提示Started DM Instance
Service(DmServiceDMSERVER).. 已启动实例服务。即可