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

Pengguna skema Oracle tidak dapat membuat tabel dalam prosedur

Jawaban atas pertanyaan langsung Anda adalah Anda mendapatkan ORA-01031: insufficient privileges karena pengguna Anda memiliki hak istimewa CREATE TABLE yang diberikan melalui peran:model keamanan Oracle memberlakukan aturan bahwa kami tidak dapat menggunakan hak istimewa yang diberikan melalui peran di PL/SQL. Jadi, Anda memerlukan DBA untuk memberikan hak istimewa CREATE TABLE kepada pengguna Anda secara langsung.

Atau kamu?

Karena apa yang Anda coba lakukan tidak masuk akal di Oracle. Di Oracle tabel sementara global permanen struktur; itu hanya data di dalamnya yang bersifat sementara. Jadi, solusi yang tepat adalah membuat tabel sekali dengan skrip DDL normal, seperti objek database lainnya. Kemudian Anda bisa memasukkan ke dalam tabel sementara global sesuai kebutuhan.

Anda bukan orang pertama di situs ini yang melakukan kesalahan ini (baca utas terkait ini). Seringkali karena orang datang dari database lain seperti SQL Server yang memiliki konstruksi yang disebut "tabel sementara" yang sebenarnya berbeda dari tabel sementara global Oracle. Jika itu skenario Anda, maka Anda akan tertarik dengan fitur baru Oracle 18c yang disebut Tabel Sementara Pribadi. Ini persis analog dengan tabel sementara SQL Server. Cari tahu lebih lanjut.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-01264:Tidak dapat membuat nama file logfile

  2. oci_bind_by_name dan to_date PHP/OCI/Oracle

  3. Permintaan Oracle SQL Analytic - total berjalan seperti spreadsheet rekursif

  4. Apakah Oracle menyimpan angka nol untuk tipe data Number?

  5. Cara Mempercantik Hasil Kueri Berformat JSON di SQLcl (Oracle)