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

ओरेकल:कोई डेटा नहीं मिला - लेकिन डेटा मौजूद है

मुझे पूरा यकीन है कि मुझे इस व्यवहार का कारण मिल गया है:मुझे लगता है कि कॉलम वास्तव में CHAR प्रकार का है न कि VARCHAR2।

निम्नलिखित पर विचार करें:

SQL> CREATE TABLE t (a CHAR(10));

Table created.

SQL> INSERT INTO t VALUES ('FUCHSB');

1 row created.

SQL> SELECT * FROM t WHERE a = 'FUCHSB';

A
----------
FUCHSB

SQL> DECLARE
  2    l VARCHAR2(20) := 'FUCHSB';
  3  BEGIN
  4    SELECT a INTO l FROM t WHERE a = l;
  5  END;
  6  /
DECLARE
*
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at line 4

निष्कर्ष:

  • CHAR डेटाटाइप के साथ काम करते समय, अपने PL/SQL वैरिएबल को CHAR घोषित करें।
  • जब संभव हो, तालिका स्तंभ परिभाषा के लिए VARCHAR2 डेटाटाइप को प्राथमिकता दें। CHAR डेटाटाइप केवल एक फूला हुआ VARCHAR2 डेटाटाइप है और VARCHAR2 डेटाटाइप (अधिक स्थान/स्मृति का उपभोग करना एक विशेषता नहीं है) पर कोई सुविधा नहीं जोड़ता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UUID अधिकतम वर्ण लंबाई

  2. Oracle 'INSERT ALL' डुप्लीकेट पर ध्यान न दें

  3. ओरेकल में विश्लेषणात्मक कार्यों का उपयोग कैसे करें (कीवर्ड द्वारा विभाजन पर)

  4. Oracle10G SQL :कॉलम को पंक्तियों में बदलना

  5. मैं स्थानीय रूप से .NET के साथ काम करने के लिए OracleClient का पुराना संस्करण कैसे प्राप्त करूं?