2009-09-14 10 views
8

एक JDBC आवेदन मैं कुछ ALTER सत्र आदेश जारी करने की जरूरत के लिए के लिए "सत्र में परिवर्तन"। मैं उन्हें एप्लिकेशन कोड में ही नहीं रखना चाहता हूं। क्या डेटाबेस स्कीमा के लिए सत्र पैरामीटर के लिए डिफ़ॉल्ट निर्दिष्ट करने का कोई तरीका है जो अनुप्रयोग (डेटाबेस पक्ष पर) का उपयोग करता है?सेट करें डिफ़ॉल्ट एक Oracle उपयोगकर्ता

+0

@Thilo, धन्यवाद आप बस मुझे बहुत समय बचा लिया! –

उत्तर

13

सबसे सत्र पैरामीटर क्लाइंट अनुप्रयोग द्वारा परिभाषित कर रहे हैं। यदि आप क्लाइंट सेटिंग्स को ओवरराइड करना चाहते हैं तो आप DATABASE TRIGGER बना सकते हैं। उदाहरण के लिए, इस BAR स्कीमा पर एक LOGON ट्रिगर बना देगा:

CREATE OR REPLACE TRIGGER bar.foo 
    AFTER LOGON ON DATABASE WHEN (USER = 'BAR') 
BEGIN 
    dbms_session.set_nls('NLS_NUMERIC_CHARACTERS', '''.,'''); 
    EXECUTE IMMEDIATE 'ALTER SESSION SET CURRENT_SCHEMA=hr'; 
END foo; 
+1

एक ऑन-लॉगऑन डेटाबेस ट्रिगर एक आवेदन कोड परिवर्तन के बिना यह करने के लिए एक ही रास्ता है। – mathewbutler

0

मैं इस परीक्षण नहीं किया है, लेकिन आप आवेदन एक संग्रहीत प्रक्रिया है कि सत्र चर जब भी एक सत्र बनाई गई है सेट फोन बना सकता है? फिर, जब आवश्यक हो तो आप सर्वर की तरफ संग्रहीत प्रक्रिया को संशोधित कर सकते हैं।

+0

बिंदु यह है कि एप्लिकेशन कोड को बिल्कुल भी नहीं बदला जाए। अगर मैं इसे बदल (जैसे एक संग्रहीत प्रक्रिया फोन के रूप में) सत्र निर्माण पर कुछ कार्रवाई शामिल करने के लिए, मैं शायद, इन कार्यों (जैसे उन्हें एक फ़ाइल से पढ़ने के रूप में) विन्यास बनाने के लिए इतना है कि मैं भी ALTER सत्र सीधे कॉल में शामिल हो सकता हैं। – Thilo

संबंधित मुद्दे