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

PL/SQL में INSERT स्टेटमेंट Oracle डेटाबेस में विफल रहता है

PL/SQL में आप INSERT लिख सकते हैं सीधे बयान।

DECLARE
  tablevalue      varchar2(200);
BEGIN
  tablevalue := 'Hello World!';

  INSERT   INTO tablename
         VALUES (tablevalue);
END;

आपका कथन विफल हो जाता है क्योंकि वह तरीका नहीं है DBMS_SQL.EXECUTE काम करता है। दस्तावेज़ीकरण और उदाहरण देखें:http:/ /docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_sql.htm#BABBFFFJ

रेफरेंस डॉक्यूमेंटेशन में दिए गए उदाहरण के अनुसार आपको इसे इस तरह करना चाहिए (पहले आप स्टेटमेंट तैयार करें, फिर वेरिएबल को बाइंड करें और फिर रन करें)।

CREATE OR REPLACE PROCEDURE demo(tablevalue IN varchar2) AS
    cursor_name INTEGER;
    rows_processed INTEGER;
BEGIN
    cursor_name := dbms_sql.open_cursor;
    DBMS_SQL.PARSE(cursor_name, 'INSERT INTO tablename VALUES(:x)',
                   DBMS_SQL.NATIVE);
    DBMS_SQL.BIND_VARIABLE(cursor_name, ':x', tablevalue);
    rows_processed := DBMS_SQL.EXECUTE(cursor_name);
    DBMS_SQL.CLOSE_CURSOR(cursor_name);
EXCEPTION
WHEN OTHERS THEN
    DBMS_SQL.CLOSE_CURSOR(cursor_name);
    raise;
END;

आप इसे तब इस तरह इस्तेमाल करें

 exec demo('something');

आशा है कि यह मदद करता है




  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. SQL में समग्र प्राथमिक कुंजी का संदर्भ कैसे दें

  3. यदि एमवी ASNI ज्वाइन का उपयोग करता है तो क्वेरी पुनर्लेखन विफल हो जाता है

  4. dbms_xplan.display के साथ भ्रमित

  5. Oracle sql में % प्रकार का क्या अर्थ है?