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

PL/SQL Bagaimana mengembalikan semua atribut di ROW

Alangkah baiknya jika kita bisa melakukan hal seperti itu tapi sayangnya:

SQL> declare
  2      v_row t23%rowtype;
  3  begin
  4      insert into t23
  5          values (my_seq.nextval, 'Daisy Head Maisy')
  6          returning * into v_row;
  7  end;
  8  /
        returning * into v_row;
                  *
ERROR at line 6:
ORA-06550: line 6, column 19:
PL/SQL: ORA-00936: missing expression
ORA-06550: line 4, column 5:
PL/SQL: SQL Statement ignored


SQL>

Saya yakin mungkin ada permintaan perubahan yang dicatat untuk fitur ini, karena saya tahu banyak orang menginginkannya. Tapi untuk saat ini yang bisa kita lakukan hanyalah spesifikasi panjang lebar dari setiap kolom:

SQL> declare
  2      v_row t23%rowtype;
  3  begin
  4      insert into t23
  5          values (my_seq.nextval, 'Daisy Head Maisy')
  6          returning id, person_name into v_row;
  7  end;
  8  /

PL/SQL procedure successfully completed.

SQL>

Berita buruk jika Anda memiliki banyak kolom!

Saya menduga alasannya adalah, sebagian besar tabel memiliki kolom turunan yang relatif sedikit (urutan yang ditetapkan ke ID, sysdate yang ditetapkan ke CREATED_DATE, dll) sehingga sebagian besar nilai seharusnya sudah diketahui (atau setidaknya dapat diketahui) untuk proses penyisipan.

edit

Saya pikir saya telah menjelaskannya, tetapi bagaimanapun:ya saat ini tidak mungkin untuk menggunakan * atau mekanisme tidak spesifik serupa dalam klausa RETURNING.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat pengguna di pengembang Oracle SQL

  2. Periksa apakah dua pilihan setara

  3. org.hibernate.ObjectDeletedException:objek yang dihapus akan disimpan kembali oleh kaskade (hapus objek yang dihapus dari asosiasi)

  4. Bagaimana cara Membungkus Kode SQL PL di Oracle?

  5. Oracle SQL - Permintaan untuk menghitung nilai dari beberapa tabel