Yapmak istediğim PL/SQL developer da bir job çalışıtıryorum, ancak çalışan job un ne zaman başlayıp bittiğinin log unu tutmak istiyorum. Select sysdate from dual dediğimde çıksa da, ekrana dbms_put.put_line(sysdate) ile sadece date olan 01/11/2016
çıkıyor, acaba DB admin olarak mı ayarlanıyor otomatik bilmiyorum ama saat kısmı çıkmıyor veya saniye. Bu bir tabloya date olarak atmaya çalıştığım zaman da aynı şekilde saati göstermiyor. Neden olabilir?
Ancak şöyle bir çözüm buldum en son ,
TO_CHAR(SYSDATE, ‘MM-DD-YYYY HH24:MI:SS’)
Merhaba,
yaşadığınız sorun NLS_DATE_FORMAT ile ilgili.
PL/SQ developer’da bunu kalıcı olarak değiştirmek için Tools / Preferences –> Database –> NLS Parameters menüsünü takip edin, Date Format kısmına “dd/mm/yyyy hh24:mi:ss” yazın. (tırnaklar olmayacak). Sonra tekrar sysdate çekebilirsiniz.
Diğer bir alternatif de session bazlı NLS_DATE_FORMAT parametresini aşağıdaki gibi değiştirmek. Fakat bunu her bağlantı yenilediğinizde çalıştırmak zorundasınız.
alter session set NLS_DATE_FORMAT = ‘DD-MON-RR HH.MI’;
select sysdate from dual;
output: 05-OCA-16 11.02
Kolay gelsin.
bu arada sqlplus kullanıyorsanız, sqlplus’da en başta “set timing on” komutunu çalıştırırsanız, sonrasında çalışan her iş için çalışma süresini(elapsed time) verir.
SQL> set timing on
SQL> select sysdate from dual;
SYSDATE
———-
05/01/2016
Elapsed: 00:00:00.03
SQL> alter session set NLS_DATE_FORMAT = ‘DD-MON-RR HH.MI’;
Session altered.
Elapsed: 00:00:00.00
SQL> select sysdate from dual;
SYSDATE
—————
05-JAN-16 11.10
Elapsed: 00:00:00.01