ORA-01882: সময় অঞ্চল অঞ্চল খুঁজে পাওয়া যায় নি


103

আমি জাভা অ্যাপ্লিকেশন থেকে একটি ওরাকল ডেটাবেস অ্যাক্সেস করছি, আমি যখন আমার অ্যাপ্লিকেশনটি চালাচ্ছি আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

java.sql.SQLException: ORA-00604: পুনরাবৃত্ত এসকিউএল স্তরে 1 ত্রুটি ঘটেছে 1 ORA-01882: টাইমজোন অঞ্চলটি পাওয়া যায়নি


আপনার পরিবেশ সম্পর্কে বলুন, আপনি কিভাবে আপনার জাভা চালান?
এবিসেডে

আমি কমান্ড লাইনে জাভা অ্যাপ্লিকেশন চালাচ্ছি। উইন্ডোজ 7 64 বিট, তবে ওরাকল ডিবি রিমোট ইউনিক্স সার্ভারে চলছে।
এনডালাম

9
আপনার আদেশে "-Duser.Timezone = <YOUR_GMT>" যুক্ত করার চেষ্টা করুন, আপনার GMT- এর সাথে <YOUR_GMT> প্রতিস্থাপন করতে ভুলবেন না, যেমন -ডুজার.টাইমজোন = "+ 05:30"
অ্যাবিসিড

উত্তর:


90

আপনি ওরাকল জেডিবিসি ড্রাইভার এবং ওরাকল ডাটাবেসের সংস্করণও পরীক্ষা করে দেখতে পারেন। ওরাকল 9.2.0.4.0 সার্ভারের সাথে সংযোগ করতে ojdbc6.jar (সংস্করণ 11.2.0.3.0) ব্যবহার করার সময় আজই আমার এই সমস্যাটি ছিল। এটি ojdbc6.jar সংস্করণ 11.1.0.7.0 এর সাথে প্রতিস্থাপন করা সমস্যার সমাধান করেছে।

আমি ojdbc6.jar সংস্করণ 11.2.0.3.0 সংযোগ করতে ত্রুটি ছাড়াই সংযোগ স্থাপন করতে পেরেছি, oracle.jdbc.timezoneAsRegion=falseফাইল ওরাকল / jdbc / defaultConnicationProperties.properties (জারের ভিতরে) যুক্ত করে। এই সমাধানটি এখানে পেয়েছে (ভাঙা লিঙ্ক)

তারপরে, কেউ -Doracle.jdbc.timezoneAsRegion=falseকমান্ড লাইনে বা AddVMOption -Doracle.jdbc.timezoneAsRegion=falseকনফিগারেশন ফাইলগুলিতে যুক্ত করতে পারেন যা এই স্বরলিপিটি ব্যবহার করে।

আপনি এই প্রোগ্রামটিমেটিকভাবেও করতে পারেন, উদাহরণস্বরূপ System.setProperty

কিছু ক্ষেত্রে আপনি যদি প্রতি সংযোগের ভিত্তিতে পরিবেশের পরিবর্তনশীল যুক্ত করতে পারেন তবে যদি এটি অনুমোদিত হয় (এসকিউএল বিকাশকারী "অ্যাডভান্সড" সংযোগ বৈশিষ্ট্যে এটির অনুমতি দেয়; সমস্যা নেই এমন একটি ডাটাবেসের সাথে সংযোগ করার সময় এবং এটি ব্যবহার করার জন্য আমি এটি যাচাই করেছি একটি ডাটাবেস যা আছে একটি ডাটাবেস লিঙ্ক)।


24
আমি ojdbc6.jar সংস্করণটি 11.2.0.3.0 ত্রুটি ছাড়াই সংযোগ স্থাপন করতে পরিচালিত করেছি, oracle.jdbc.timezoneAsRegion = ফাইলকে ওরাকল / jdbc / defaultConnicationProperties.properties (জারের ভিতরে) যুক্ত করে adding এই সমাধানটি এখানে পেয়েছে
মাত্তেও স্টেকোলিনী

33
শেষ অবধি, কেউ এই নোটেশনটি ব্যবহার করে এমন কনফিগার ফাইলগুলিতে -Doracle.jdbc.timezoneAsRegion = কমান্ড লাইনের সাথে মিথ্যা বা AddVMOption -Doracle.jdbc.imezoneAsRegion = মিথ্যা যোগ করতে পারে।
মাত্তেও স্টেকোলিনি

ধন্যবাদ স্ট্যামস্যাট। এটা আমার জন্য কাজ করেছে। আমি আমার ওজডবিসি জারটি টমকাট / লিবিব ডিরেক্টরিতে 11.1.0.7.0 সংস্করণে পরিবর্তন করেছি এবং এটি কাজ শুরু করে :)।
এমদেব

4
আমি আমার প্রকল্পটি নির্মাণ এবং প্যাকেজ (যুদ্ধ) করতে মেঘ ব্যবহার করছি এবং ক্লাউড ফ্লেয়ারে স্থাপন করব, এই সম্পত্তিটি নির্ধারণের কোনও উপায় কি অ্যাপ্লিকেশন rop প্রপার্টি ফাইল থেকে বা ম্যাভেন থেকে করা যেতে পারে ।
ইসমাইল

41

উইন্ডোজের অধীনে একটি সমতলে একটি এসকিউএল-বিকাশকারী ডিরেক্টরি ডিরেক্টরিতে যান

C:\Program Files\sqldeveloper\sqldeveloper\bin

এবং যোগ কর

AddVMOption -Duser.timezone=CET

ফাইল করা sqldeveloper.conf


জেটব্রেইনস ডেটাগ্রিপ ব্যবহার করে এবং এই ভিএম অপশন যুক্ত করার পরে একই সমস্যার মুখোমুখি হয়ে সমস্যার সমাধান হয়েছে
লাটশা

ধন্যবাদ, এটি সত্যিই অনেক সাহায্য করেছে!
কুইন্টন

27

আমি পেয়েছি ত্রুটি:

Db_connection.java থেকে ত্রুটি - >> java.sql.SQLException: ORA-00604: পুনরাবৃত্ত এসকিউএল স্তর 1 ORA-01882 এ ত্রুটি ঘটেছে: টাইমজোন অঞ্চল খুঁজে পাওয়া যায় নি

ORA-00604: পুনরাবৃত্ত এসকিউএল স্তরে 1ORA-01882 এ ত্রুটি ঘটেছে: টাইমজোন অঞ্চলটি পাওয়া যায়নি

পূর্ববর্তী কোড:

 public Connection getOracle() throws Exception {
     Connection conn = null;
     Class.forName("oracle.jdbc.driver.OracleDriver");
     conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:tap", "username", "pw");
     return conn;
}

নতুন কোড:

 public Connection getOracle() throws Exception {
     TimeZone timeZone = TimeZone.getTimeZone("Asia/Kolkata");
     TimeZone.setDefault(timeZone);
     Connection conn = null;
     Class.forName("oracle.jdbc.driver.OracleDriver");
     conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:tap", "username", "pw");
     return conn;
}

এখন এটা কাজ করছে !!


আপনাকে ধন্যবাদ, আমার প্রয়োজনটা ঠিক তাই!
অ্যালান থম্পসন

কেন জানি এটি ডিফল্ট টাইমজোন 'ইউরোপ / মাদ্রিদ' পছন্দ করে নি। 'GMT' এ ডিফল্ট টাইমজোন সেট করা
fgui

22

আপনি নীচের লাইনটি ব্যবহার করতে লাইব্রেরির যে কোনও সংস্করণে (অর্থাত্ আপনার জারের অভ্যন্তরে) যে কোনও সংস্করণে ফাইলটি ওরাকল / jdbc / defaultConnicationProperties.properties আপডেট করুন :

oracle.jdbc.timezoneAsRegion=false

19

যা ঘটে তা হ'ল, জেডিবিসি ক্লায়েন্ট সার্ভারে টাইমজোন আইডি প্রেরণ করে। সার্ভারের সেই অঞ্চলটি জানা দরকার। আপনি চেক করতে পারেন

SELECT DISTINCT tzname FROM V$TIMEZONE_NAMES where tzname like 'Etc%';

আমার কিছু ডিবি সার্ভার রয়েছে যা 'ইসি / ইউটিসি' এবং 'ইউটিসি' (tzfile সংস্করণ 18) সম্পর্কে জানে তবে অন্যরা কেবল 'ইউটিসি' (tz সংস্করণ 11) জানে।

SELECT FILENAME,VERSION from V$TIMEZONE_FILE;

জেডিবিসি ক্লায়েন্টের পক্ষ থেকেও আলাদা আচরণ রয়েছে। ১১.২ দিয়ে শুরু করে ড্রাইভার জোন আইডিগুলি যদি ওরাকলকে "জানা" থাকে তবে তা টাইম অফসেট প্রেরণের আগে প্রেরণ করবে। এই "পরিচিত আইডি প্রেরণে" সমস্যাটি হ'ল, ক্লায়েন্ট সার্ভারে কোন টাইমজোন সংস্করণ / সামগ্রী উপস্থিত রয়েছে তা যাচাই করে না তবে তার নিজস্ব তালিকা রয়েছে।

এটি ওরাকল সাপোর্ট আর্টিকেল [আইডি 1068063.1] এ ব্যাখ্যা করা হয়েছে।

দেখে মনে হচ্ছে এটি ক্লায়েন্ট ওএসের উপরও নির্ভর করে, সম্ভবত এইচসিএল বা ইউটিসি আরহেল বা উইন্ডোজের তুলনায় উবুন্টুতে ব্যর্থ হয়। আমি অনুমান করি এটি কিছু সাধারণীকরণের কারণে হয়েছে তবে আমি ঠিক ঠিক বুঝতে পারি নি।


14
  1. Eclipse এ go রান -> কনফিগারেশন চালান

  2. সেখানে ডান পাশের প্যানেলে জেআরই ট্যাবে যান

  3. মধ্যে VM- র আর্গুমেন্ট অধ্যায় এই পেস্ট

    -Duser.timezone=GMT

  4. তারপরে প্রয়োগ করুন -> চালান


8

অবিচ্ছিন্ন ইন্টিগ্রেশন সার্ভার থেকে স্বয়ংক্রিয় পরীক্ষা চালানোর সময় আমার এই সমস্যা হয়েছিল। আমি -Duser.timezone=GMTবিল্ড প্যারামিটারগুলিতে ভিএম যুক্তি " " যুক্ত করার চেষ্টা করেছি , তবে সমস্যাটি সমাধান হয়নি। তবে, পরিবেশের পরিবর্তনশীল যুক্ত করা " TZ=GMT" এটি আমার জন্য ঠিক করে দিয়েছে।


4
"TZ = GMT" পরিবেশের পরিবর্তনশীলটিও আমার পক্ষে কাজ করেছিল। আমার একটি শেল স্ক্রিপ্ট নিয়ে সমস্যা ছিল যা একটি পৃথক সরঞ্জাম চালানোর জন্য পরিবেশ সেটআপ করে যা ঘুরে ফিরে ওরাকল অ্যাক্সেস করে।
ডেভিড কেইনার

4
একই সমস্যা থাকার পরে, আমাকেও "পিপীলিকা" ব্যবহার করার সময় "TZ = ইউরোপ / জুরিখ" ব্যবহার করতে হয়েছিল। এটা কাজ করেছে!
ক্রিস্টোফ কলিন

4
এটি শীর্ষ উত্তর হওয়া উচিত। অন্য সমস্ত উত্তর কার্যকর হয়নি।
অ্যালেক্স ডেম্বো

4

ত্রুটি :

ORA-00604: পুনরাবৃত্ত এসকিউএল স্তরে 1 ত্রুটি ঘটেছে 1 ORA-01882: টাইমজোন অঞ্চলটি পাওয়া যায়নি

সমাধান: সেন্টোসে সিআইএম সেটআপ।

/opt/oracle/product/ATG/ATG11.2/home/bin/dynamoEnv.sh

এই জাভা যুক্তি যুক্ত করুন:

JAVA_ARGS="${JAVA_ARGS} -Duser.timezone=EDT"

3

নেটবিনে,

  1. আপনার প্রকল্প -> বৈশিষ্ট্যগুলিতে ডান ক্লিক করুন
  2. রানে যান (বিভাগের অধীনে)
  3. ভিএম বিকল্পের আওতায় -ডুজার.টাইমজোন = ইউটিসি বা -ডুজার.টাইমজোন = জিএমটি প্রবেশ করান।

ওকে ক্লিক করুন, তারপরে আপনার প্রোগ্রামটি আবার চালান।

দ্রষ্টব্য: আপনি ইউটিসি এবং জিএমটি ছাড়াও অন্যান্য টাইমস্টোনগুলিতেও সেট করতে পারেন।


3

টমকেট নিয়ে আমি এই সমস্যায় পড়লাম। $CATALINA_BASE/bin/setenv.shসমস্যার সমাধানের জন্য নিম্নলিখিতগুলি সেট করা :

JAVA_OPTS=-Doracle.jdbc.timezoneAsRegion=false

আমি নিশ্চিত যে অন্যান্য উত্তরগুলির জাভা প্যারামিটার পরামর্শগুলির একটি ব্যবহার একই পদ্ধতিতে কাজ করবে।


2

আমি একই একই সমস্যার মুখোমুখি।

পরিবেশ:

লিনাক্স, হাইবারনেট প্রকল্প, ojdbc6 ড্রাইভার যখন ওরাকল 11 জি ডাটাবেসটি জিজ্ঞাসা করছে।

রেজোলিউশন

TZ প্যারামিটারটি লিনাক্স মেশিনে সেট করা হয়নি, যা মূলত টাইমজোন সম্পর্কে ওরাকলকে বলে। সুতরাং, আবেদনের সময় এক্সপোর্ট স্ট্যাটমেন্ট "এক্সপোর্ট টিজেড = ইউটিসি" যুক্ত করার পরে আমার সমস্যার সমাধান হবে।

ইউটিসি -> আপনার টাইমজোনটিতে স্বত্ব পরিবর্তন করুন।


2

যদি এই সমস্যাটি জেডিভোল্পারে থাকে: মডেল এবং দর্শন প্রকল্পের জন্য প্রকল্পের বৈশিষ্ট্যগুলি পরিবর্তন করুন -> চালান / ডিবাগ -> ডিফল্ট প্রোফাইল -> সম্পাদনা নীচের রান বিকল্পটি যুক্ত করুন: -ডুসার.টাইমজোন = এশিয়া / কলকাতা

আপনার ডাটাবেস থেকে উপরোক্ত সময় অঞ্চল মানটি প্রাপ্ত করা হয়েছে তা নিশ্চিত করুন:

select TZNAME from V$TIMEZONE_NAMES;

এর সাথে সাথে আপনি আপনার jdev.conf এর সময় জোন সেটিংস পাশাপাশি JDeveloper -> অ্যাপ্লিকেশন মেনু -> ডিফল্ট প্রকল্পের বৈশিষ্ট্যগুলি -> চালনা / ডিবাগ -> ডিফল্ট প্রোফাইল -> রান বিকল্পগুলি পরীক্ষা করতে চান।


1

আমি যখন জেডিভোল্পারে সংযোগ তৈরি করার চেষ্টা করেছি তখন আমারও একই সমস্যা ছিল। আমাদের সার্ভারটি বিভিন্ন টাইমজোনে অবস্থিত এবং সে কারণে এটি নীচের ত্রুটিগুলি উত্থাপন করেছে:

ORA-00604: error occurred at recursive SQL level 1 

ORA-01882: timezone region not found

আমি অনেক ফোরামগুলিকে উল্লেখ করেছি যা জাভা -Duser.timezone="+02:00"অপশনগুলিতে টাইমজোন (রান / ডিবাগ / প্রোফাইল) অন্তর্ভুক্ত করতে বলেছিল প্রকল্পের বৈশিষ্ট্য এবং ডিফল্ট প্রকল্পের বৈশিষ্ট্যগুলি কিন্তু এটি আমার পক্ষে কাজ করে না। অবশেষে নিম্নলিখিত সমাধানটি আমার পক্ষে কাজ করেছিল।

JDeveloper এর কনফিগারেশন ফাইল ( jdev.conf ) এ নিম্নলিখিত লাইনটি যুক্ত করুন ।

AddVMOption -Duser.timezone=UTC+02:00

ফাইলটি "<ওরাকল ইনস্টলেশন রুট> \ মিডওয়ালওয়্যার \ জডিফলার \ জেদেব \ বিন \ জেদেব.কনফ" এ অবস্থিত।


1

আমার ক্ষেত্রে আমি "টিজেডআর" "টিজেডডি" দিয়ে পরিবর্তন করে ক্যোয়ারীটি কাজ করতে পারি ..

String query = "select * from table1 to_timestamp_tz(origintime,'dd-mm-yyyy hh24:mi:ss TZD') between ?  and ?";

1

আমি আমার লিনাক্স সিস্টেমে টাইমজোন সেট করে (সেন্টোস 6.5) একই সমস্যাটি সমাধান করতে সক্ষম হয়েছি।

থেকে পোস্ট করা হচ্ছে

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html

  1. টাইমজোন সেট করুন /etc/sysconfig/clockযেমন ZONE = "আমেরিকা / লস_এঞ্জেলস" এ সেট করুন

  2. সুডো এলএন-এসএফ / ইউএসআর / শেয়ার / জোনিনফো / আমেরিকা / ফিনিক্স / ইত্যাদি / স্থানীয় সময়

টাইমজোন মানটি বের করার চেষ্টা করুন

ls /usr/share/zoneinfo

এবং আপনার সময় অঞ্চলকে উপস্থাপন করে এমন ফাইলটি সন্ধান করুন।

একবার আপনি এই মেশিনটি রিবুট সেট করে আবার চেষ্টা করুন।


4
আমার জন্য, / ইত্যাদি / সিসকনফিগ / ক্লক এবং / ইত্যাদি / লোকালটাইম লিঙ্কটি সঠিকভাবে সেট করা হয়েছে তা নিশ্চিত করা ওআরএ-01882 ইস্যুটি সমাধান করার জন্য পূর্বশর্ত ছিল।
ডেভিড কেনার

1

OBIEE থেকে ওরাকল ডিবিতে সংযোগ দেওয়ার চেষ্টা করার সময় আমার একই সমস্যা হয়েছিল। আমি আমার উইন্ডোজ টাইমজোনকে (GMT + 01: 00) পশ্চিম মধ্য আফ্রিকা থেকে (GMT + 01: 00) ব্রাসেলস, কোপেনহেগেন, মাদ্রিদ, প্যারিসে পরিবর্তন করেছি। তারপরে আমি আমার কম্পিউটারটি পুনরায় বুট করেছিলাম এবং এটি ঠিকঠাক কাজ করেছে। দেখে মনে হচ্ছে ওরাকল পশ্চিম মধ্য আফ্রিকার টাইমজোনকে চিনতে সক্ষম হয় নি।


1

কোডটি যেটি ডিবিতে সংযোগ দেওয়ার চেষ্টা করছে তার একটি টাইমজোন রয়েছে যা ডিবিতে নেই This এটি নীচের মতো সময় অঞ্চল নির্ধারণ করে বা ওরাকল ডিবিতে কোনও বৈধ সময় অঞ্চল নির্ধারণ করেও সমাধান করা যেতে পারে। বৈধ সময় অঞ্চল যা পাওয়া যাবে * ভি $ সংস্করণ থেকে নির্বাচন করুন;

System.setProperty ("user.timezone", "আমেরিকা / নিউ_ইয়র্ক"); টাইমজোন.সেট ডিফল্ট (নাল);


0

Eclipse এবং একটি দূরবর্তী ওরাকল ডাটাবেস ব্যবহার করে একই সমস্যার মুখোমুখি হওয়া, ডাটাবেস সার্ভারের টাইম জোনের সাথে আমার সিস্টেমের সময় অঞ্চলটি পরিবর্তন করে সমস্যাটি স্থির করে। সিস্টেমের সময় অঞ্চল পরিবর্তন করার পরে মেশিনটি পুনরায় চালু করুন

আমি আশা করি এটি কারও সাহায্য করতে পারে


0

java.sql.SQLException: ORA-00604: পুনরাবৃত্ত এসকিউএল স্তরে 1 ত্রুটি ঘটেছে 1 ORA-01882: টাইমজোন অঞ্চলটি পাওয়া যায় নি

এই ধরণের ত্রুটির জন্য, কেবলমাত্র আপনার সিস্টেমের সময়টিকে আপনার দেশের মানক GMT ফর্ম্যাটে পরিবর্তন করুন

যেমন ভারতীয় সময় অঞ্চলটি চেন্নাই, কলকাতা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.