我有一个支点,其中我与坦克编号签订了合同,以 ; 分隔。我已经得到了这个例子来将它们向下旋转成行(有效):
SELECT oks_c.contract_number,
oks_l.line_id,
oks_l.tank_numbers, column_value AS TANK_NUMBER
FROM oks_contract_header oks_c
INNER JOIN oks_contract_lines oks_l
ON oks_l.contract_number = oks_c.contract_number AND
oks_l.item_name LIKE '%.55201'
, table(str2tbl(oks_l.tank_numbers,';')) acbb
ORDER BY oks_c.contract_number,
oks_l.line_id,
TANK_NUMBER
Run Code Online (Sandbox Code Playgroud)
这是流水线函数:
CREATE OR REPLACE function DBRAJAH.str2tbl( p_str in varchar2, p_delim in varchar2 default ',' ) return
str2tblType
PIPELINED
as
l_str long default p_str || p_delim;
l_n number;
begin
loop
l_n := instr( l_str, p_delim );
exit when (nvl(l_n,0) = 0);
pipe row( ltrim(rtrim(substr(l_str,1,l_n-1))) );
l_str := substr( …
Run Code Online (Sandbox Code Playgroud)