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

Bagaimana mengatasi ORA-00900

ORA-00900 Pernyataan SQL tidak valid adalah salah satu kesalahan umum
Berikut adalah apa yang dikatakan dokumentasi oracle tentang kesalahan ini

Referensi:Dokumentasi Oracle

Daftar periksa untuk menyelesaikan Pernyataan SQL ORA-00900 yang tidak valid

(1) Kesalahan ini biasanya terjadi saat Anda mencoba membuat prosedur Oracle dan Opsi Prosedural tidak diinstal. Untuk menentukan apakah Opsi Prosedural telah diinstal, buka sesi Oracle menggunakan SQL*Plus. Jika banner PL/SQL tidak muncul, berarti Anda tahu bahwa Opsi Prosedural belum diinstal.

(2) ORA-00900 dapat terjadi saat mencoba menggunakan tautan basis data. Banyak pengguna menemukan bahwa mereka menemukan ORA-00900 saat mereka mencoba untuk menanyakan bidang yang mungkin telah bekerja sebelum tahun 2000. Untuk menyelesaikan ORA-00900, pada database lokal, coba ubah parameter init.ora Anda NLS_DATE_FORMAT, lalu gunakan tanda kutip ganda (bukan tunggal) di sekitar nilai


alter session set NLS_DATE_FORMAT = "DD-MON-YYYY";

(3) Menggunakan pernyataan eksekusi pada pengembang sql / koneksi JDBC

execute dbms_utility.analyze_schema('OKX','ESTIMATE',30);
ORA-00900: invalid SQL statement

eksekusi adalah opsi sqlplus, kita harus menggunakan salah satu opsi di bawah ini dalam aplikasi/program bahasa lain

begin
execute dbms_utility.analyze_schema('OKX','ESTIMATE',30);
end;
or
begin
execute dbms_utility.analyze_schema('OKX','ESTIMATE',30)
end;
/

(4) Sering kali pengembang melakukan kesalahan dalam blok plsql dan menulis pernyataan seperti

v_dynsql:='dbms_utility.analyze_schema('OKX','ESTIMATE',30)';
execute immediate v_dynsql;

Kode di atas memberikan ORA-00900 sebagai dbms_utility.analyze_schema('OKX','ESTIMATE',30);
bukan pernyataan yang valid

Cara mengatasinya adalah dengan menggunakan awal dan akhir seperti yang diberikan di bawah ini

v_dynsql:=
q'[BEGIN
dbms_utility.analyze_schema('OKX','ESTIMATE',30);
END;]';
execute immediate v_dynsql;

(5) Jika Anda ingin mendeskripsikan tabel di PLSQL

SQL> begin execute immediate 'describe FND_USER';
2 end;
3 /
begin execute immediate 'describe FND_USER';
*
ERROR at line 1:
ORA-00900: invalid SQL statement
ORA-06512: at line 1

Anda tidak dapat menggunakan desc di sini. kami mungkin ingin memilihnya berdasarkan kueri

begin
execute immediate q'[select COLUMN_NAME,DATA_TYPE
from all_tab_columns
where table_name = 'FND_USER'
order by column_id]';
end;
/

(6) Jika Anda mencoba menjelaskan rencana membuat pernyataan tampilan

SQL> explain plan for create view test as select * from dual;
explain plan for create view test as select * from dual
*
ERROR at line 1:
ORA-00900: invalid SQL statement

Semoga Anda menyukai berbagai cara untuk memperbaiki kesalahan  ORA. Harap berikan umpan balik tentang itu

Artikel terkait
ORA-00911:karakter tidak valid
ORA-29913:kesalahan dalam menjalankan pemanggilan ODCIEXTTABLEOPEN
ORA-27154:pembuatan posting/tunggu gagal saat startup
ORA-01111
ORA -00257 :Pengarsip error, hubungkan internal saja sampai dibebaskan
ora-29283:operasi file tidak valid


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memeriksa apakah file ada di PL/SQL?

  2. BatchUpdateException:batch tidak akan dihentikan

  3. RR vs YY di Oracle

  4. Contoh Transaksi Otonom Oracle

  5. Dua pernyataan PLSQL dengan awal dan akhir, berjalan dengan baik secara terpisah tetapi tidak bersama-sama?