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

चर की जाँच करते समय गलत प्रकार की ओरेकल अभिव्यक्ति

इस तरह से आपको data_length . के मानों की तुलना नहीं करनी चाहिए और data_precision . उचित संख्याओं के रूप में उनकी तुलना करें, उसे एक स्ट्रिंग में न बदलें:

DECLARE 
  old_length NUMBER;
  old_prec   NUMBER;
BEGIN

  SELECT data_length, coalesce(data_precision,0)
     INTO old_length, old_prec 
  FROM user_tab_cols 
  WHERE table_name='EX_EMPLOYEE' 
    AND column_name='ID';

  IF (old_length <> 6 and old_prec <> 2) THEN
    EXECUTE IMMEDIATE ('ALTER TABLE EX_EMPLOYEE MODIFY ID NUMERIC(6,2)');
  END IF;

END;
/

ध्यान दें कि SELECT COUNT(*) बाद पहला चयन बेकार है। अगर ऐसा कोई कॉलम नहीं है तो पहले SELECT data_length, data_precision INTO पहले से ही एक ORA-01403: no data found अपवाद और यदि कॉलम मौजूद है तो कोड कभी भी चेक तक नहीं पहुंचेगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL परिणाम समूह महीने के अनुसार

  2. बाइनरी एक्सएमएल के रूप में संग्रहीत होने पर ओरेकल एक्सएमएल टाइप कितना बड़ा है

  3. Oracle प्रॉक्सी स्कीमा का उपयोग करके db लिंक बनाता है

  4. डीबी में ब्लॉब लोड करने का प्रयास करते समय मुझे java.lang.AbstractMethodError क्यों मिलता है?

  5. C#.Net और Oracle के बीच भिन्न एन्क्रिप्शन परिणाम प्राप्त करना