【发布时间】:2010-09-07 19:32:31
【问题描述】:
我想我可能在这里遗漏了一些东西。以下是触发器的相关部分:
CURSOR columnNames (inTableName IN VARCHAR2) IS
SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME = inTableName;
/* Removed for brevity */
OPEN columnNames('TEMP');
这是我要返回的错误消息,
27/20 PLS-00306:调用“COLUMNNAMES”时参数的数量或类型错误 27/2 PL/SQL:语句被忽略如果我正确理解了文档,那应该可以,但既然不是,我一定是做错了什么。有什么想法吗?
@Matthew - 感谢您的帮助,但我感到困惑的原因是因为这段代码对我不起作用并且会引发引用的错误。我们在数据库中有其他触发器,其代码几乎完全相同,所以我不确定是我做错了什么,还是我尝试存储触发器的方式等。
@Matthew - 好吧,现在我感到很尴尬。我将您提供的代码复制/粘贴到新触发器中,效果很好。所以我回到原来的触发器里试了一下,又收到了错误信息,只是这次我开始从触发器中删除东西,在去掉这条线之后,
FOR columnName IN columnNames LOOP
保存完好。所以事实证明,我认为错误在哪里,实际上并不是错误在哪里。
【问题讨论】:
-
我投票决定关闭,因为不再可重现。下次请选择一个有效的理由,因为这有助于在审核队列中了解您认为应该关闭此问题的原因。
标签: oracle plsql triggers database-cursor