Vâng, điều này phụ thuộc rất nhiều vào thư viện truy cập dữ liệu của bạn.
Bạn có thể trả về bất kỳ loại tương thích SQL nào làm tham số. Điều này bao gồm các loại SQL phức tạp và các loại bộ sưu tập. Nhưng hầu hết các thư viện chỉ đơn giản là không có khả năng xử lý các loại đối tượng của Oracle.
Dù bằng cách nào, ví dụ tôi sẽ sử dụng các loại đối tượng:
create type SomeType as object(Field1 VarChar(50));
create type SomeTypeList as table of SomeType;
Khi thư viện truy cập của bạn có thể xử lý các loại đối tượng, bạn chỉ có thể trả về một danh sách các đối tượng PL/SQL:
begin
:list := SomeTypeList(SomeType('a'),SomeType('b'),SomeType('c'));
end;
Nếu không, bạn có thể hack xung quanh nó bằng cách buộc danh sách này thành một lựa chọn và trả lại kết quả dưới dạng con trỏ:
declare
list SomeTypeList;
begin
list := SomeTypeList(SomeType('a'),SomeType('b'),SomeType('c'));
open :yourCursor for
SELECT A
FROM table(list);
end;
Nguồn
2010-07-30 14:20:22
Bạn không thể retu dữ liệu rn từ khối PLSQL ẩn danh. –
có, bạn có thể, ví dụ trong 'nút oracledb' bạn sử dụng' oracledb.BIND_OUT' kiểm tra https://github.com/oracle/node-oracledb/blob/master/doc/api.md – Toolkit