2010-08-24 30 views
8

Theo dõi câu hỏi "Get resultset from oracle stored procedure", có cách nào để hiển thị kết quả của một thủ tục được lưu trữ trả về một REFCURSOR trong lưới (thay vì cửa sổ nhập văn bản thuần túy) trong SQL Developer không?Nhà phát triển Oracle SQL: Hiển thị kết quả REFCURSOR trong lưới?

EDIT: Câu trả lời giúp, nhưng tôi vẫn đang gặp một vấn đề hiển thị tập hợp kết quả trong cửa sổ "Xem Value":

alt text

Các cột chỉ có thể được mở rộng một lượng nhỏ , có thể là do số lượng kết quả được trả lại. Mở rộng cửa sổ với sự kiểm soát resizer không giúp:

alt text

Trả lời

8

Tôi không nghĩ rằng bạn có thể với một thủ tục.

Chỉnh sửa: Nhờ DCookie để đơn giản hóa câu trả lời gốc của tôi.

Nhưng như một công việc xung quanh bạn có thể viết một hàm gọi thủ tục và sau đó gọi hàm đó bằng cách sử dụng SQL.

ví dụ:

create or replace function callmyproc 
return sys_refcursor 
IS 
    rc sys_refcursor; 
BEGIN 

    myproc(rc); 

    return rc; 

END; 

Mà bạn sau đó có thể gọi với:

select callmyproc() 
    from dual; 

Khi ví dụ này được điều hành, lưới dữ liệu SQL Developer cho thấy một kết quả nhưng nếu bạn di chuyển sang phải và nhấn vào nút chỉnh sửa, bạn sẽ thấy kết quả trong lưới.

+1

Hoặc đơn giản hơn, tạo một hàm gọi thủ tục và trả về con trỏ. – DCookie

+0

@DCookie - Tất nhiên! một cách thanh lịch hơn nhiều. Cảm ơn, tôi đã sửa đổi câu trả lời của tôi. –

+0

Cảm ơn sự giúp đỡ của bạn. Tôi đã chấp nhận câu trả lời, nhưng đối với kết quả tôi nhận được trở lại cửa sổ "Xem giá trị" cho thấy các cột nhỏ mà tôi không thể mở rộng khi nhấp vào nút chỉnh sửa. – technomalogical

Các vấn đề liên quan