背景:
本地存储过程P1完成2个任务:
1.通过DBLINK调用远程数据库的存储过程P2,进行TRUNCATE TABLE,并返回成功与否的标志。
2.若成功,则对该表进行INSERT。
说明:因为某些原因不能DELETE TABLE,只能TRUNCATE。 现象:
执行远程数据库上的存储过程P2,没有错误;但使用本地数据库的存储过程P1,就在调用远程数据库的语句处出现ORA-02064。当将远程数据库存储过程P2的TRUNCATE TABLE语句修改为DELETE后,便没有问题。 提问:
是不是调用远程数据库的存储过程或者函数等,不能含有TRUNCATE TABLE等类似操作?如果不行,那该怎么变通处理,来完成这样的操作呢?(不能用DELETE的前提)
本地存储过程P1完成2个任务:
1.通过DBLINK调用远程数据库的存储过程P2,进行TRUNCATE TABLE,并返回成功与否的标志。
2.若成功,则对该表进行INSERT。
说明:因为某些原因不能DELETE TABLE,只能TRUNCATE。 现象:
执行远程数据库上的存储过程P2,没有错误;但使用本地数据库的存储过程P1,就在调用远程数据库的语句处出现ORA-02064。当将远程数据库存储过程P2的TRUNCATE TABLE语句修改为DELETE后,便没有问题。 提问:
是不是调用远程数据库的存储过程或者函数等,不能含有TRUNCATE TABLE等类似操作?如果不行,那该怎么变通处理,来完成这样的操作呢?(不能用DELETE的前提)
这样的语句我当然也试过不行,这样的限制是不是有什么安全性的考虑呢?如果不是,那会不会是BUG,是不是有ORACLE补丁可以打呢?难道我只能用DELETE?