我想我可能在这里遗漏了一些东西。这是触发器的相关部分:
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
东西保存得很好。所以事实证明,我认为错误在哪里,实际上并不是错误在哪里。