scenarion इस तरह है ...ओरेकल के अंदर संग्रहित प्रक्रिया
मैं एक नाम स्थान XXX
जहां मैं कुछ टेबल और कुछ संग्रहित प्रक्रियाओं बनाया है ...
वे एक नाम स्थान YYY
जहां वे कुछ टेबल बनाया ...
है कि वे उनके तालिकाओं के लिए XXX
पहुँच प्रदान की गई है, इसलिए जब मैं XXX
कनेक्शन का उपयोग कर SQL डेवलपर को conect, मैं कर सकते हैं:
SELECT * FROM YYY.TableA
लेकिन अगर मैं संग्रहीत प्रक्रिया (या तो सरल संग्रहित प्रक्रिया या पैकेज) के अंदर से वही कथन चलाने की कोशिश करता हूं, तो संग्रहीत प्रक्रिया संकलित नहीं होती है। यह बहुत सारे एसपी के साथ होता है। क्या कोई अन्य अनुमति है जिसके लिए मुझे पूछना है ??? मैं इस तरह एसपी चला रहा हूं:
CREATE OR REPLACE PROCEDURE PRC_SOMESP(
) AS BEGIN
END PRC_SOMESP;
प्रक्रियाएं जो YYY तालिकाओं तक नहीं पहुंचती हैं, अच्छी तरह से संकलित होती हैं।
अग्रिम धन्यवाद।
जस्टिन गुफा प्रतिक्रिया के बाद, मैं एसपी के लिए "AUTHID CURRENT_USER" वाक्य जोड़ने की कोशिश कर रहा हूँ, लेकिन एक ही हो रही है परिणाम "तालिका या दृश्य मौजूद नहीं है":
CREATE OR REPLACE PROCEDURE PRC_PROC1(PARAMETERS...)
AUTHID CURRENT_USER
AS
MYVAR NUMBER;
BEGIN
STATEMENTS...
END PRC_PROC1;
CREATE OR REPLACE PACKAGE PKG_PROC2
AUTHID CURRENT_USER
AS
TYPE T_CURSOR IS REF CURSOR;
PROCEDURE PRC_PROC2(PARAMETERS...)
END PKG_PROC2
मैं और कुछ की जांच करना चाहिए? ??
सबसे पहले, आप एसपी नहीं चलाते जैसे आप कहते हैं कि आप करते हैं, आप उन्हें बनाते हैं। दूसरा, सुनिश्चित करें कि 'PRC_SOMESP()' का चयन करने के लिए 'YYY.TableA' पर सही निजीकरण है। –