如何將單個參數中的多個值傳遞給存儲過程Informix?Informix:如何將單個參數中的多個值傳遞給存儲過程
這是一個常見的問題,但我已經看到noyhing關於Informix。
我發現了一個post,但它不工作對我來說,應該是DB的版本,還是我失去了一些東西?
我想這個執行WHERE X IN (SELECT Y FROM TABLE(PARAM))
編輯:
這是什麼我試着做一個例子。
CREATE PROCEDURE test_hector
(
C LIST(SET (CHAR(10) NOT NULL) NOT NULL)
)
RETURNING CHAR(10) AS C, CHAR(10) AS CVE, CHAR(50) AS DESC;
DEFINE vColumna like tclaves.columna;
DEFINE vClave like tclaves.clave;
DEFINE vdescve like tclaves.descve;
FOREACH
select columna, clave, descve
INTO vColumna, vClave,vdescve
from tclaves
where columna in (SELECT * FROM TABLE(C))
RETURN vColumna, vClave,vdescve WITH RESUME;
END FOREACH
END PROCEDURE;
我試圖去執行它,但我認爲我有sintax問題
EXECUTE PROCEDURE test_hector('{stspols,stsrepo}');
我收到錯誤消息[Informix][Informix ODBC Driver][Informix]Invalid collection literal value.
我執行這個功能execute function se_release()
獲得informix版本這是我得到的。
column1
Spatial DataBlade Release 8.21.FC4R1 (Build 238) Compiled on Thu Aug 26 19:42:55 CDT 2010 with: IBM Informix Dynamic Server Version 10.00.FC7 glslib-4.00.UC10
我使用Aqua Data Studio 8.0.22
來創建和執行該過程。提前Runinng上Windows 7 Ultimate 32-Bits
感謝。對於任何幫助
我編輯了我的問題來回答你的問題。在此先感謝您的幫助! –
這樣寫'EXECUTE PROCEDURE test_hector(LIST {SET {'stspols','stsrepo'}});'throws'[Informix] [Informix ODBC Driver] [Informix]發生語法錯誤。 '。 Wriitten like this'執行程序test_hector('LIST {SET {''stspols'',''stsrepo''}}');'throws'[Informix] [Informix ODBC Driver] [Informix]尚未實現。對於集合,sqlerrm(= any,!= any,= all或!= all)'和這樣'執行程序test_hector('LIST {SET {「stspols」,「stsrepo」}}');'拋出'[Informix] [Informix ODBC驅動程序] [Informix]尚未實現。 sqlerrm(= any,!= any,= all,或者!=全部爲集合)':( –
+1 btw的完整解釋。幾乎工作,我認爲我們缺少的東西 –