tôi chủ yếu là một người mới oracle, vì vậy tha thứ cho tôi nếu đây là một câu hỏi ngu ngốc ...Thực thi một Proc Oracle lưu trữ như Một tài
Tôi có một schema gọi là 'CODE' với một proc lưu trữ mà thực hiện tùy ý SQL (bây giờ, xin vui lòng bỏ qua các vấn đề an ninh tiềm năng liên quan đến điều đó). SQL được truyền vào sẽ chọn dữ liệu; nhưng tất cả dữ liệu nằm trong lược đồ A, B hoặc C - nhưng SQL sẽ chỉ bao giờ chọn từ MỘT lược đồ tại một thời điểm.
Ví dụ: Người dùng loại A tạo chuỗi 'SELECT * FROM A.USERTABLE' - trong khi người dùng loại B tạo chuỗi 'SELECT * FROM B.USERTABLE'.
Điều tôi đang cố gắng làm là cho phép người dùng không chỉ định rõ ràng lược đồ của họ. Trong ứng dụng net. Tôi đã biết nếu họ là loại A, B, hoặc C. Tôi muốn cả ba chỉ cần nhập 'SELECT * FROM USERTABLE'.
Sự cố tôi gặp phải là tôi không biết cách thực hiện điều đó. Ứng dụng của tôi chỉ có thể thực hiện proc trong lược đồ 'CODE' - vì vậy tôi không thể chỉ sao chép mã và cho phép người dùng A gọi 'A.ExecuteSQL'.
Tôi đã thử một vài điều; nhưng không có gì đã làm việc cho đến nay. Tôi muốn proc ExecuteSQL ở lại trong lược đồ CODE; nhưng khi 'USERTABLE' được chuyển vào, tôi cần nó biết rằng đôi khi điều đó có nghĩa là A.USERNAME và đôi khi B.USERNAME.
Mọi đề xuất?
Tính năng này hoạt động như thế nào? Ứng dụng đầu tiên thực hiện câu lệnh 'ALTER' này hoặc thực hiện điều này trong thủ tục' CODE'? – Guru
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:588045400346317188 có một số thông tin khác. Dường như bạn có thể làm điều đó với sql động (thực hiện ngay) bên trong proc được lưu trữ của bạn. –
@Guru: Xem liên kết AskTom của Rob P –