यह अच्छा होगा अगर हम ऐसा कुछ कर सकें लेकिन अफसोस:
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, आदि) इसलिए अधिकांश मान पहले से ही ज्ञात (या कम से कम जानने योग्य) डालने की प्रक्रिया में होना चाहिए।
संपादित करें
मुझे लगा कि मैंने इसे स्पष्ट कर दिया है, लेकिन वैसे भी:हाँ वर्तमान में *
. का उपयोग करना असंभव है या रिटर्निंग क्लॉज में कुछ समान अविशिष्ट तंत्र।