Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

cách trả về tập kết quả động trong hàm Oracle

Giả sử hàm biên dịch, hãy thử:

SELECT * 
  FROM TABLE(strtokenizer('a,b,c',','));

Tham khảo:

Chức năng cần được sửa chữa - sử dụng:

CREATE OR REPLACE FUNCTION StrTokenizer (string IN VARCHAR2, 
                                         delimiter IN VARCHAR2)
RETURN key_value_table AS v_ret key_value_table
BEGIN
  SELECT CAST(MULTISET(SELECT LEVEL k, 
                              SUBSTR(STRING_TO_TOKENIZE, DECODE(LEVEL, 1, 1, INSTR(STRING_TO_TOKENIZE, DELIMITER, 1, LEVEL-1)+1), 
                              INSTR(STRING_TO_TOKENIZE, DELIMITER, 1, LEVEL) - DECODE( LEVEL, 1, 1, INSTR(STRING_TO_TOKENIZE, DELIMITER, 1, LEVEL-1)+1)) v
                         FROM (SELECT string || delimiter AS STRING_TO_TOKENIZE , 
                                      delimiter AS DELIMITER
                                 FROM DUAL)
                   CONNECT BY INSTR(STRING_TO_TOKENIZE, DELIMITER, 1, LEVEL)>0 
                     ORDER BY level ASC) AS key_value_table)
    INTO v_ret
    FROM DUAL;

  RETURN v_ret;

END;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle 11g - Chạy con trỏ PL / SQL

  2. Hành vi autoCommit mặc định của kết nối JDBC

  3. Cơ sở dữ liệu Oracle - ORA-01460 - yêu cầu chuyển đổi chưa thực hiện hoặc không hợp lý

  4. Cung cấp thông tin đăng nhập cho UTL_MAIL.SEND để bỏ qua ORA-29278

  5. Thực thi truy vấn Sql động trong Oracle