【问题标题】:Derby DB Insert Error SQL state 21000Derby DB 插入错误 SQL 状态 21000
【发布时间】:2013-03-04 16:48:36
【问题描述】:

我正在尝试将数据插入到我的数据库中的表中。我正在使用 Oracle Apache Derby DB。我有以下代码-

Insert into P2K_DBA.ODS_CNTRL
(ODS_LOAD_ID, ODS_STATUS, USR_WWID, USR_FIRST_NM, 
USR_LAST_NM, USR_DISPLAY_NM, USR_NT_ID,TOT_AMT, 
TOT_RCD_CNT, TOT_QTY, LAST_UPD_DT, ODS_ADJ_TYP, 
ODS_ADJ_DESC, APRV_WWID, APRV_FIRST_NM,APRV_LAST_NM, 
APRV_DISPLAY_NM, APRV_NT_ID, APRV_DT
)
values 
(6,'avail','64300339', 'Travis',
'Taylor', 'TT', '3339', 33,
15, 40, '7/10/2012', 'test',
'test', '64300337', 'Travis',
'Taylor', 'TT', '3339', '2/06/2013');

我运行此 SQL 命令并收到以下错误-

"错误代码-1,SQL状态21000:标量子查询只允许返回单行。 第 1 行,第 1 列"

几天前我已经成功运行了这段代码。最重要的是,我尝试在此表中手动输入数据(使用 NetBeans)并让它自动生成代码,这导致了同样的错误。

是什么导致了这个错误,我该如何解决/绕过它?

【问题讨论】:

  • 错误信息与贴出的SQL无关。
  • 当我运行该查询时,我收到了错误消息。我试图断开并重新连接数据库无济于事。如上所述,该代码上周可以将行(数据)添加到表中,但现在我收到了该错误消息。
  • 我已经解决了这个问题。我拿走了一个现有的触发器。一旦触发器被删除,上面的插入语句就可以正常工作。触发器为一个值返回多行,这导致了错误。
  • @eric_13 今天的学习:关于触发器的讨厌的副作用太多了

标签: sql database derby sql-insert


【解决方案1】:

你可能会遇到这种情况的一种方法是做类似的事情

创建函数 F(...) ...

F((从 T 中选择颜色))

但你可以改为写

... (SELECT F(COL) FROM T) 如果新上下文允许子查询,即。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-08
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 2017-03-20
    • 1970-01-01
    • 2015-11-14
    相关资源
    最近更新 更多