gpt4 book ai didi

sql - 在子查询中使用 sequence.nextval

转载 作者:行者123 更新时间:2023-12-04 19:03:11 26 4
gpt4 key购买 nike

我想创建一个可以直接复制到 MS Excel 中的模板(通过 SQL)。

总的来说,这很顺利,但是,我遇到了应该存储 Excel 公式的字段的问题。根据用户在 Excel 工作表列之一中的输入,该字段应该用于在 Excel 文件中创建 INSERT 语句。

这是我的代码:

SELECT
-- some other fields here
[...],
(SELECT '="INSERT INTO MyTable VALUES(" &C' || CREATE_INSERTS_TEMP_SEQ.nextval || '&",''THIS COLUMN IS TO BE FILLED BY USER IN EXCEL'',''"&D' || CREATE_INSERTS_TEMP_SEQ.currval || '&"'',14,sysdate);"' FROM DUAL) As SQL_Statement
FROM myTable;

我收到错误消息 ORA-02287: sequence number not allowed here .

为什么我的子查询中不允许使用它?知道如何解决这个问题吗?

我必须能够访问这些值才能创建一个正常运行的 Excel 公式,因为这些数字是对相应 Excel 行的引用...

最佳答案

The documentation包括限制,包括:

CURRVAL and NEXTVAL cannot be used in these places:

  • A subquery
  • ...


但是这里不需要子查询:
SELECT
-- some other fields here
[...],
'="INSERT INTO MyTable VALUES(" &C' || CREATE_INSERTS_TEMP_SEQ.nextval
|| '&",''THIS COLUMN IS TO BE FILLED BY USER IN EXCEL'',''"&D'
|| CREATE_INSERTS_TEMP_SEQ.currval || '&"'',14,sysdate);"' As SQL_Statement
FROM myTable;

此表单不会生成错误。

我怀疑曾经在子查询中不允许它的原因是因为它不清楚或确定子查询将执行多少次。如果它在这种情况下有效,那么您可能对表中的每一行都有相同的插入语句,这可能不是您的意图。

关于sql - 在子查询中使用 sequence.nextval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32094893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com