2009-01-15 6 views
11

मैं Oracle 10.2 XE पर वैश्विक nls_date_format परिभाषित किया है इस प्रकार है:ओरेकल JDBC ग्राहक के लिए डिफ़ॉल्ट nls_date_format कैसे बदलें

alter system set nls_date_format='YYYY-MM-DD HH24:MI:SS' scope=spfile; 

जब Windows पर जोड़ने, ग्राहकों सत्र विशिष्ट प्रारूप के साथ ओवरराइड, तो मैं करने की जरूरत है हर सत्र की शुरुआत में इस लाइन को चलाने:

alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS'; 

हालांकि, मैं (, JDBC कोड ojdbc14.jar का उपयोग) है कि मैं बदल नहीं सकते कुछ कस्टम कोड है, इसलिए जब प्राप्त मैं इस लाइन पर अमल नहीं कर सकते संपर्क। क्या सभी jdbc कनेक्शन के लिए nls_date_format के डिफ़ॉल्ट मान को बदलने का कोई तरीका है? शायद कनेक्शन स्ट्रिंग में कुछ जोड़ना, या कुछ पर्यावरण चर जो मैं उपयोग कर सकता हूं?

वैसे, sqlplus और sqldeveloper भी सर्वर के प्रारूप को ओवरराइड करते हैं, लेकिन मुझे पता चला कि उनके डिफ़ॉल्ट कैसे बदलें, इसलिए समस्या केवल जेडीबीसी कनेक्शन के साथ है। लॉगऑन ट्रिगर

उत्तर

5

सेट NLS दिनांक स्वरूप, वह मेरे लिए काम किया।

CREATE OR REPLACE TRIGGER LOGINTRG 
AFTER LOGON ON DATABASE 
BEGIN 
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT=''YYYY-MM-DD HH24:MI:SS'''; 
END LOGINTRG; 
5

धन्यवाद के बाद कोई

+0

ट्रिगर बनाने पर http://stackoverflow.com/questions/283589/oracle-setting-per-user-default-scheme-not-altering-a-session देखें: ट्रिगर है कि मैं डाला यह है विशिष्ट स्कीमा के लिए। – Vadzim

+0

मैंने कोशिश की, यह काम किया, लेकिन यह सबकुछ नीचे बिंदु तक धीमा कर दिया गया था (यह अनगिनत था (एक खाली तालिका पर कई सेकंड लेने पर गिनती (*) का चयन करें !!!) – laurent

+0

@laurent मुझे आपकी समस्या की तरह लगता है जैसे कहीं और छुपा रहा है। हम कई वर्षों से कई ग्राहकों के साथ उत्पादन में इस लॉगऑन ट्रिगर का उपयोग कर रहे हैं और कोई समस्या नहीं है। – Yoni