【问题标题】:using a sequence in sqlj?在sqlj中使用序列?
【发布时间】:2015-12-30 14:01:25
【问题描述】:

我是 sqlj 的新手,并尝试使用由序列生成的 id 插入数据。这是我当前的代码:

String pattern = ...;
#sql {INSERT INTO my_table (id, pattern) VALUES (my_seq.nextVal(), :(pattern))};

但我不断收到 ORA-02287 错误。 我需要采取不同的做法吗?

【问题讨论】:

  • 是的。做到了!让它成为一个答案,我会接受它。
  • 注意:PL/SQL 是基于 Ada,而不是 C,因此您不需要在函数名后加上括号来调用它;事实上,如果您确实将括号放在不需要的位置,您会收到错误消息(正如您所发现的那样)。祝你好运。
  • 令人困惑的是,我遇到了一个错误,并没有让我认为存在语法错误。
  • Oracle 以生成错误消息而闻名,说得好听一点,这些错误消息显然没有帮助。祝你好运。

标签: java oracle sqlj


【解决方案1】:

省略nextval之后的括号:

#sql {INSERT INTO my_table (id, pattern) VALUES (my_seq.nextval, :(pattern))}; 

【讨论】:

    【解决方案2】:

    不是 sqlJ 专家,但在 SQL 部分你应该使用 my_seq.nextVal,不带 ()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 2014-01-14
      • 1970-01-01
      相关资源
      最近更新 更多