【DB2报错】执行存储过程报SQLSTATE:-811 SQLCODE:21000,怎么办?
今天執(zhí)行存儲過程的時候又碰到報錯:
The result of a scalar fullselect , SELECT INTO statement , or VALUES INTO statement is more than one row..SQLSTATE:-811 SQLCODE:21000
不要慌,遇事不決先翻譯!!!
翻譯:標(biāo)量fullselect,SELECT INTO語句或VALUES INTO語句的結(jié)果不止一行。
目錄
報錯解釋?:
原因分析:
處理方式:
報錯解釋?:
SQLSTATE:-104?? 錯誤狀態(tài)碼,SELECT INTO語句或VALUES INTO語句的結(jié)果不止一行。
SQLCODE=21000?錯誤類代碼,SELECT? INTO 的結(jié)果是一個多行的結(jié)果表,或者,基本謂詞的子查詢結(jié)果為多個值。
用戶響應(yīng):確保語句包含適當(dāng)?shù)臈l件規(guī)范。如果有,那么可能有導(dǎo)致在僅期望返回一行時卻返回了多行的數(shù)據(jù)問題。
原因分析:
根據(jù)提示找到問題語句所在地方,一般這個報錯出現(xiàn)在判斷語句的判斷條件下,因為返回了多個結(jié)果導(dǎo)致它無法判斷應(yīng)該返回哪個值,或者哪條數(shù)據(jù)。
假設(shè)有一張【表】CUST_ITEAM
id name iteam_id1 張三 12 李四 1我的存儲過程有一個判斷條件如下↓↓↓↓↓↓↓
IF 1=(select iteam_id from CUST_ITEAM) THEN......END IF; ------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------我是分割線 ------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------很明顯注意到select iteam_id from CUST_ITEAM ------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------我是分割線 ------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------是會返回兩條數(shù)據(jù)的iteam_id11處理方式:
只需要改一下判斷條件就可以解決這個報錯了
IF 1=(select iteam_id from CUST_ITEAM where name = '張三') THEN......END IF;------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------我是分割線 ------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------返回resultiteam_id1其他報錯?的原因碼以及其他報錯的錯誤狀態(tài)碼可以在下面 IBM 的鏈接查看。
👇👇👇👇👇👇👇👇👇👇👇
SQL0500 - SQL0749 - IBM Documentationhttps://www.ibm.com/docs/en/db2/11.1?topic=messages-sql0500-sql0749#sql0668n有需要文檔的同學(xué)也可以私信我~
總結(jié)
以上是生活随笔為你收集整理的【DB2报错】执行存储过程报SQLSTATE:-811 SQLCODE:21000,怎么办?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS开发:报错The sandbox
- 下一篇: redhat7安装Oracle11g数据