【发布时间】:2013-05-11 09:10:27
【问题描述】:
我有一个看起来或多或少类似于下面的 sql -
宣布 some_Date 日期; 开始 从 dual 中选择 sysdate 到 some_Date ; 合并成 (SELECT cola, colb, colc FROM TableA WHERE status='A' AND some_id = 101) P USING ( select some_Date as cola from dual ) S ON (P.cola=S.cola) 当匹配然后 更新集 P.status = 'D' 当不匹配时 插入 (可乐,colb,colc) 价值观 (xxx,xxx,xxx); 结尾 ;当我通过直接将 some_date 替换为 sysdate 来运行上述查询时,它执行时没有错误。但是我替换了 using 子句中的 sysdate 并尝试动态使用它,但出现以下错误。 我得到如下异常 -
错误报告: ORA-00600: 内部错误代码, 参数: [qcsfbdnp:1], [B1], [], [2], [], [], [], [], [], [], [], [] ORA-06512: 在第 5 行 00600. 00000 - “内部错误代码,参数:[%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s] " *原因:这是 Oracle 程序的通用内部错误号 例外。这表明一个进程遇到了 特殊情况。 *行动:报告为错误 - 第一个参数是内部错误号这是 oracle 中的已知错误吗?什么是替代品?
更新:修正了一个错字!
【问题讨论】:
-
USING 子句是否应该返回一个名为
cola的列?在上面的语句中,它返回一个名为cala的列。可能只是一个错字,但也许值得一提... -
是的,这是一个错字。我现在修好了。
-
每个 ORA-600 都是一个错误。如果您在 My Oracle Support 上查找它,您将很快找到此问题的答案。 (很抱歉没有在此处发布这些详细信息,但目前尚不完全清楚共享这些信息的规则。)
标签: sql oracle oracle11g sql-merge