Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Pernyataan INSERT di PL/SQL gagal di database Oracle

Di PL/SQL Anda bisa menulis INSERT pernyataan secara langsung.

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

  INSERT   INTO tablename
         VALUES (tablevalue);
END;

Pernyataan Anda gagal karena itu bukan cara DBMS_SQL.EXECUTE bekerja. Lihat dokumentasi dan contohnya:http:// /docs.Oracle.com/cd/B28359_01/appdev.111/b28419/d_sql.htm#BABBFFFJ

Menurut contoh yang diberikan dalam dokumentasi referensi Anda harus melakukannya seperti ini (pertama Anda menyiapkan pernyataan, lalu mengikat variabel dan kemudian menjalankannya).

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;

Anda menggunakannya kemudian seperti ini

 exec demo('something');

Semoga membantu




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri SQL untuk menemukan baris dengan setidaknya satu dari nilai yang ditentukan

  2. Oracle dan pemrograman

  3. Praktik terbaik untuk menyimpan kata sandi di skrip shell / Perl?

  4. Menggunakan objek java.sql.Timestamp dalam kueri sql

  5. Memasukkan nilai nol saat menggunakan penyisipan massal