问题:当代码块中有DDL(create,delete,alter)等操作时,报错“当前触发器不支持DDL语句”。这个问题是因为DDL_TV_TRIGGER参数值为0导致
解决:需要在数据库目录下面的ini文件中增加DDL_TV_TRIGGER该参数解决;默认情况下,该参数值为0是关闭的;
首先查询配置文件中参数名称包含DDL;(其实我在第一次查询时是没有这个参数的,所以直接手动在参数配置文件中新增的)
select * from v$dm_ini where para_name like ‘%DDL%’;
Windows
手动修改数据库下dm.ini的参数信息
1、找到DM数据库安装目录,找到data文件,找到数据库文件夹, 打开dm.ini。
2、添加参数: DL_TV_TRIGGER= 1 #Whether support ddl for table trigger
这个位置尽量DDL自动提交的参数放在一起
系统函数修改配置参数的方法(如果上诉语句查询没有该参数,则无法实现修改)
SP_SET_PARA_VALUE(2,'DDL_TV_TRIGGER',1);
修改完重启数据实例;打开DM服务查看器即可重启;
Linux
1、使用Xshell 连接数据库服务器(用户名,密码)
2、命令步骤(DM安装数据库时,一般默认就是这么目录)
cd ../
cd opt/
cd dmdbms/
cd data/
cd DAMENG/
3、使用Xftp 把dm.ini 放到本地,增加参数
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).. 已启动实例服务。