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.