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

Mendapatkan kesalahan PLS-00201 saat membuat tipe di Oracle

%TYPE sintaks untuk digunakan dalam deklarasi PL/SQL. Sayangnya kami tidak dapat menggunakannya saat membuat objek SQL. Hal yang sama berlaku untuk %rowtype .

Akan sangat rapi jika kita bisa, karena satu penggunaan umum create or replace type akan membangun API tabel seperti yang ingin Anda lakukan. Namun, akan terlalu rumit untuk mengelola konstruksi referensi dalam kamus data; ingatlah bahwa Tipe dapat digunakan untuk mendefinisikan objek lain termasuk kolom Tabel.

Sayangnya, Anda perlu mendeklarasikan Tipe dengan tipe data eksplisit untuk atributnya:

create or replace type TYPE_EVOL_CONFIG_CHANGE_LOG as object
    (
    F_TABLE_MODIFIED        VARCHAR2(40) ,
    F_OPERATION_PERFORMED   VARCHAR2(30),
    F_ROWS_ALTERED          INTEGER , 
    F_LAST_UPDATED_BY       VARCHAR2(20) ,
    F_LAST_UPDATED_DATE     DATE
);

Jelas Anda juga perlu menyinkronkannya secara manual setiap kali struktur kolom T_C_EVO_GAME_CONFIG_CHANGE_LOG berubah. Namun Anda tetap harus melakukan ini jika menambahkan atau menghapus kolom.

Atau Anda dapat menentukan jenisnya sebagai catatan PL/SQL dalam sebuah paket. Itu akan memungkinkan Anda untuk menggunakan sintaks referensi.

create or replace package game_config as    

    TYPE_EVOL_CONFIG_CHANGE_LOG is record
    (
        F_TABLE_MODIFIED        T_C_EVO_GAME_CONFIG_CHANGE_LOG.F_TABLE_MODIFIED%TYPE ,
        F_OPERATION_PERFORMED   T_C_EVO_GAME_CONFIG_CHANGE_LOG.F_OPERATION_PERFORMED%TYPE,
        F_ROWS_ALTERED          T_C_EVO_GAME_CONFIG_CHANGE_LOG.F_ROWS_ALTERED%TYPE , 
        F_LAST_UPDATED_BY       T_C_EVO_GAME_CONFIG_CHANGE_LOG.F_LAST_UPDATED_BY%TYPE ,
        F_LAST_UPDATED_DATE     T_C_EVO_GAME_CONFIG_CHANGE_LOG.F_LAST_UPDATED_DATE%TYPE
    );

    -- or even
    TYPE TAB_EVOL_CONFIG_CHANGE_LOG is table of T_C_EVO_GAME_CONFIG_CHANGE_LOG%rowtype;
end;

Tergantung bagaimana Anda ingin menggunakan Type di aplikasi Anda yang lebih luas.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fungsi jendela last_value tidak berfungsi dengan baik

  2. Cara memilih nilai dalam kolom

  3. Panggilan prosedur tersimpan dengan kursor melempar pengecualian nama kolom yang tidak valid

  4. Apakah mungkin menggunakan pengembalian dalam prosedur tersimpan?

  5. Batasan unik ORA-00001 dilanggar