Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle में लीप सेकंड्स को कैसे हैंडल करें

राज्य मंत्री से-

<ब्लॉककोट>

एक टाइमस्टैम्प कॉलम में लीप सेकंड डालें ORA-01852 (DocID 1553906.1) के साथ विफल हो जाता है

इस पर लागू होता है:

Oracle डाटाबेस - एंटरप्राइज़ संस्करण - संस्करण 8.1.7.4 और बाद में

Oracle डाटाबेस - मानक संस्करण - संस्करण 8.1.7.4 और बाद के संस्करण

इस दस्तावेज़ की जानकारी किसी भी प्लेटफ़ॉर्म पर लागू होती है।

लक्षण:

टाइमस्टैम्प कॉलम में लीप सेकंड डालने का प्रयास विफल रहता है:ORA-01852:सेकंड 0 और 59 के बीच होना चाहिए

कारण

किसी दिनांक या टाइमस्टैम्पडेटाटाइप में>59 सेकंड के मान को संग्रहीत करना संभव नहीं है

समाधान

इस समस्या को हल करने के लिए, लीप सेकेंड रिकॉर्ड को इसके बजाय avarchar2 डेटाटाइप में संग्रहीत किया जा सकता है। उदा।

SQL> create table test (val number, t varchar2(30));

Table created.

SQL> insert into test values(123, '2012-06-30T23:59:60.000000Z');

1 row created.

सबसे अच्छा समाधान नहीं, बल्कि एकमात्र समाधान है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल डेटाबेस स्टेटमेंट में ENABLE कीवर्ड का उपयोग करने का कारण / उपयोगिता क्या है?

  2. ओरेकल पीएल/एसक्यूएल आईपीवी 6 सीडीआर के लिए रेंज आईपी की गणना कैसे करें

  3. Oracle संग्रहित प्रक्रिया का उपयोग करके ज़िप करें

  4. एसक्यूएल और पीएल/एसक्यूएल में एक स्ट्रिंग को उलटना एक उदाहरण

  5. SQL कथन द्वारा क्रम पर दायाँ कोष्ठक गुम है