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

Oracle Stored Procedure inout parameter masalah - Mendapat solusinya - Kesalahan ketik

Beberapa masalah:

  1. VARHAR2 kami salah ketik dan seharusnya VARCHAR2 .
    • Sebagai gantinya, Anda dapat menentukan tipe data untuk mereferensikan kolom tabel yang sesuai menggunakan table_name.column_name%TYPE .
  2. Prosedur tidak menghasilkan apa-apa - Anda perlu mengubah salah satu IN parameter ke OUT (atau IN OUT parameter).
  3. Kueri Anda tidak menentukan nama tabel.
  4. Anda dapat menggunakan SELECT ... INTO ... daripada CURSOR .

Sesuatu seperti ini:

CREATE OR REPLACE PROCEDURE FIRSTPROC (
  ID1 IN  table_name.id1val%TYPE,
  ID2 OUT table_name.id2val%TYPE
)
AS
BEGIN
  DBMS_OUTPUT.PUT_LINE(ID1);
  SELECT id2val
  INTO   ID2
  FROM   table_name
  WHERE  id1val = ID1;
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    ID2 := 0; -- Or you could use NULL
  WHEN TOO_MANY_ROWS THEN
    ID2 := 0; -- Or you could use NULL
END;
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuang Blok Data

  2. Kata terakhir dalam sebuah kalimat:Dalam SQL (ekspresi reguler mungkin?)

  3. Ambil nilai yang berbeda dengan LISTAGG di Oracle 12C

  4. Menggunakan pernyataan Gabung untuk tabel tunggal

  5. cara menggabungkan dua nilai berbeda dari satu tabel satu pelanggan menjadi satu baris