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

अगर Oracle मौजूद नहीं है तो डालें

पार्टी में देर से आना, लेकिन...

ऑरैकल 11.2.0.1 के साथ एक अर्थपूर्ण संकेत . है जो ऐसा कर सकता है:IGNORE_ROW_ON_DUPKEY_INDEX

उदाहरण:

insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(customer_orders,pk_customer_orders) */
  into customer_orders
       (order_id, customer, product)
values (    1234,     9876,  'K598')
     ;

अपडेट करें :हालांकि यह संकेत काम करता है (यदि आप इसे सही ढंग से लिखते हैं), ऐसे बेहतर तरीके हैं जिनके लिए Oracle 11R2 की आवश्यकता नहीं है:

पहला दृष्टिकोण—उपरोक्त अर्थ संकेत का सीधा अनुवाद:

begin
  insert into customer_orders
         (order_id, customer, product)
  values (    1234,     9876,  'K698')
  ;
  commit;
exception
  when DUP_VAL_ON_INDEX
  then ROLLBACK;
end;

दूसरा दृष्टिकोण—एक लॉट बहुत विवाद होने पर उपरोक्त दोनों संकेतों से तेज़:

begin
    select count (*)
    into   l_is_matching_row
    from   customer_orders
    where  order_id = 1234
    ;

    if (l_is_matching_row = 0)
    then
      insert into customer_orders
             (order_id, customer, product)
      values (    1234,     9876,  'K698')
      ;
      commit;
    end if;
exception
  when DUP_VAL_ON_INDEX
  then ROLLBACK;
end;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SEC_CASE_SENSTIVE_LOGON 12c . में

  2. Oracle डेटा प्रकार

  3. कैसे एक संग्रहीत समारोह या प्रक्रिया का उपयोग किए बिना, एक रिटर्न वैल्यू पैरामीटर के रूप में सी # ODP.NET से एक Oracle रेफ कर्सर का उपयोग करने के लिए?

  4. जावा:ऑरैकल डेटाबेस में CLOB कैसे डालें?

  5. बाधा कैसे बदलें