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

विशिष्ट परिदृश्य के लिए Oracle क्वेरी को अपडेट करने के लिए कनवर्ट करें

किसी क्वेरी से तालिका को अपडेट करने का एक शानदार तरीका MERGE स्टेटमेंट का उपयोग करना है। यहां एक उदाहरण दिया गया है जो all_objects को कॉपी करता है और उस पंक्ति के मालिक और प्रकार से मेल खाने वाली वस्तुओं की संख्या का एक कॉलम जोड़ता है।

CREATE TABLE all_objects_2 AS
SELECT *
  FROM all_objects;

ALTER TABLE all_objects_2 add owner_and_type_ct NUMBER;

MERGE INTO all_objects_2 ao2
USING (SELECT ao.owner,
              ao.object_type,
              COUNT(*) AS ct
         FROM all_objects ao
        GROUP BY ao.owner,
                 ao.object_type) x
ON (ao2.owner = x.owner AND ao2.object_type = x.object_type)
WHEN MATCHED THEN
  UPDATE
     SET ao2.owner_and_type_ct = x.ct;

SELECT ao2.owner,
       ao2.object_name,
       ao2.object_type,
       ao2.owner_and_type_ct
  FROM all_objects_2 ao2
 WHERE rownum < 10;
/*
SYS C_TS# CLUSTER 10
SYS I_TS# INDEX 1459
SYS C_FILE#_BLOCK#  CLUSTER 10
SYS I_FILE#_BLOCK#  INDEX 1459
SYS FET$  TABLE 1592
SYS UET$  TABLE 1592
SYS SEG$  TABLE 1592
SYS UNDO$ TABLE 1592
SYS TS$ TABLE 1592
*/

आप [गंतव्य तालिका] में [आपकी क्वेरी] का उपयोग करते हुए [गंतव्य से क्वेरी में शामिल होने के मानदंड] और जब आप एक पंक्ति से मेल खाते हैं तो आप क्वेरी से मूल्यों के साथ पंक्ति को अपडेट करते हैं। आप मर्ज के साथ INSERT और DELETE भी कर सकते हैं, लेकिन मैं सभी दस्तावेज़ीकरण




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. थोक संग्रह के बिना वस्तुओं के संग्रह के साथ Oracle वस्तु का चयन

  2. Oracle SQL - अधिकतम () NULL मानों के साथ

  3. JdbcTemplate - SQL MERGE का उपयोग करके Oracle BLOB डालें या अपडेट करें

  4. Oracledb ड्राइवर के माध्यम से Nodejs के साथ दूरस्थ Oracle DB से कनेक्ट करना

  5. ORA-28040:कोई मिलान प्रमाणीकरण प्रोटोकॉल नहीं