所以我一直都面臨着這樣的問題,我爲它找到一個解決方案:
CREATE OR REPLACE FUNCTION Test(
Data_1 CLOB(1M), Delimtator VARCHAR(12))
RETURNS TABLE (
FieldData varchar(2048))
LANGUAGE SQL
BEGIN
DECLARE dInic INTEGER DEFAULT 1 ;
DECLARE dFim INTEGER DEFAULT 0 ;
DECLARE Rowid1 INTEGER DEFAULT 0;
DECLARE Campo VARCHAR(2048);
IF Data_1 IS NULL THEN
RETURN;
END IF;
SET dFim=LOCATE(Delimtator,Data_1);
WHILE dFim>0 DO
SET Campo=SUBSTRING(Data_1,dInic,dFim-dInic);
PIPE (Campo);
SET dInic=dFim+LENGTH(Delimtator);
SET dFim=LOCATE(Delimtator,Data_1,dFim+LENGTH(Delimtator));
END WHILE;
SET Campo=SUBSTRING(Data_1, dInic,LENGTH(Data_1)-dInic+1);
PIPE (Campo);
RETURN;
[email protected]
你的意思是'SELECT * FROM TABLE(使用functionName(「1 || 2 || 3','||'));' – mao
可能的重複https://stackoverflow.com/questions/18961996/how-to-split-a-string-value-based-on-a-delimiter- in-db2 – mao