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

Mengapa saya tidak bisa memasukkan tanggal ini ke dalam tabel menggunakan sql?

Oracle akan melakukan TO_DATE implicit implisit pada literal non-tanggal saat memasukkannya ke dalam DATE kolom menggunakan nilai NLS_DATE_FORMAT sebagai format topeng. Jika literal non-tanggal cocok dengan format ini maka itu akan berfungsi (dan jika tidak maka tidak akan) - namun, jika NLS_DATE_FORMAT pernah diubah maka akan segera rusak (sangat sulit untuk di-debug karena kode yang berfungsi tidak akan tetapi tidak ada yang akan mengubah kode).

Anda dapat mengetahui NLS_DATE_FORMAT Anda saat ini dengan pertanyaan:

SELECT VALUE
FROM   NLS_SESSION_PARAMETERS
WHERE  PARAMETER = 'NLS_DATE_FORMAT';

Lebih baik menggunakan TO_DATE secara eksplisit dengan format mask yang benar atau menggunakan literal tanggal ANSI (yaitu DATE '2014-12-01' ).

insert into employees_table
values(
  05,
  'Sophie',
  'Kuchinskey',
  '[email protected]',
  105,
  5000000,
  60,
  TO_DATE( '20-sep-1994', 'DD-Mon-YYYY' )
);

Atau, menggunakan format ANSI agnostik lokal/bahasa:

insert into employees_table
values(
  05,
  'Sophie',
  'Kuchinskey',
  '[email protected]',
  105,
  5000000,
  60,
  DATE '1994-09-20'
);


  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 Memilih dan Memesan Berdasarkan kolom tidak dalam pernyataan Groupy By SQL - Oracle

  2. Oracle:Cara menghitung baris null dan non-null

  3. Fungsi NLS_CHARSET_NAME() di Oracle

  4. contoh sintaks bergabung dengan oracle

  5. Cara membuat menu di SQLPlus atau PL/SQL