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

पीएल/एसक्यूएल पंक्ति में सभी विशेषताओं को कैसे लौटाता है?

यह अच्छा होगा अगर हम ऐसा कुछ कर सकें लेकिन अफसोस:

SQL> declare
  2      v_row t23%rowtype;
  3  begin
  4      insert into t23
  5          values (my_seq.nextval, 'Daisy Head Maisy')
  6          returning * into v_row;
  7  end;
  8  /
        returning * into v_row;
                  *
ERROR at line 6:
ORA-06550: line 6, column 19:
PL/SQL: ORA-00936: missing expression
ORA-06550: line 4, column 5:
PL/SQL: SQL Statement ignored


SQL>

मेरा मानना ​​है कि इस सुविधा के लिए एक लॉग इन परिवर्तन अनुरोध हो सकता है, क्योंकि मुझे पता है कि बहुत से लोग इसे चाहते हैं। लेकिन फिलहाल हम हर कॉलम की लंबी-चौड़ी विशिष्टता कर सकते हैं:

SQL> declare
  2      v_row t23%rowtype;
  3  begin
  4      insert into t23
  5          values (my_seq.nextval, 'Daisy Head Maisy')
  6          returning id, person_name into v_row;
  7  end;
  8  /

PL/SQL procedure successfully completed.

SQL>

अगर आपके पास बहुत सारे कॉलम हैं तो बुरी खबर!

मुझे संदेह है कि तर्क यह है कि अधिकांश तालिकाओं में अपेक्षाकृत कुछ व्युत्पन्न कॉलम होते हैं (एक आईडी को अनुक्रमित अनुक्रम, एक CREATED_DATE को असाइन किया गया sysdate, आदि) इसलिए अधिकांश मान पहले से ही ज्ञात (या कम से कम जानने योग्य) डालने की प्रक्रिया में होना चाहिए।

संपादित करें

मुझे लगा कि मैंने इसे स्पष्ट कर दिया है, लेकिन वैसे भी:हाँ वर्तमान में * . का उपयोग करना असंभव है या रिटर्निंग क्लॉज में कुछ समान अविशिष्ट तंत्र।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-00984:यहां कॉलम की अनुमति नहीं है

  2. निम्नलिखित प्रश्नों के परिणामों की तुलना करने के लिए एक एसक्यूएल क्वेरी

  3. प्राथमिक, अद्वितीय और विदेशी कुंजी बाधाओं और अनुक्रमित के बीच क्या अंतर है?

  4. ओरेकल में दो अंतराल के बीच औसत कैसे फैलाएं?

  5. ANSI और गैर-ANSI जॉइन में क्या अंतर है, और आप किसकी अनुशंसा करते हैं?