Jumat, 03 Juli 2009
CREATE Table from another table with consitions
Kelebihan script ini antara lain :
1. dapat membuat table hasil dari select table/view
2. tidak perlu menentukan jenis field/coloum parameter
3. dapat di masukkan di dalam procedure.
Perhatikan step-step ny , semoga bermanfaat.
SQL> CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,
2 ENAME VARCHAR2(10),
3 JOB VARCHAR2(9),
4 MGR NUMBER(4),
5 HIREDATE DATE,
6 SAL NUMBER(7, 2),
7 COMM NUMBER(7, 2),
8 DEPTNO NUMBER(2));
SQL>
SQL> INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902, TO_DATE('17-DEC-1980', 'DD-MON-YYYY'), 800, NULL, 20);
SQL> INSERT INTO EMP VALUES (7499, 'ALLEN', 'SALESMAN', 7698, TO_DATE('20-FEB-1981', 'DD-MON-YYYY'), 1600, 300, 30);
SQL> INSERT INTO EMP VALUES (7521, 'WARD', 'SALESMAN', 7698, TO_DATE('22-FEB-1981', 'DD-MON-YYYY'), 1250, 500, 30);
SQL> INSERT INTO EMP VALUES (7566, 'JONES', 'MANAGER', 7839, TO_DATE('2-APR-1981', 'DD-MON-YYYY'), 2975, NULL, 20);
SQL> INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN', 7698,TO_DATE('28-SEP-1981', 'DD-MON-YYYY'), 1250, 1400, 30);
SQL> INSERT INTO EMP VALUES (7698, 'BLAKE', 'MANAGER', 7839,TO_DATE('1-MAY-1981', 'DD-MON-YYYY'), 2850, NULL, 30);
SQL> INSERT INTO EMP VALUES (7782, 'CLARK', 'MANAGER', 7839,TO_DATE('9-JUN-1981', 'DD-MON-YYYY'), 2450, NULL, 10);
SQL> INSERT INTO EMP VALUES (7788, 'SCOTT', 'ANALYST', 7566,TO_DATE('09-DEC-1982', 'DD-MON-YYYY'), 3000, NULL, 20);
SQL> INSERT INTO EMP VALUES (7839, 'KING', 'PRESIDENT', NULL,TO_DATE('17-NOV-1981', 'DD-MON-YYYY'), 5000, NULL, 10);
SQL> INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN', 7698,TO_DATE('8-SEP-1981', 'DD-MON-YYYY'), 1500, 0, 30);
SQL> INSERT INTO EMP VALUES (7876, 'ADAMS', 'CLERK', 7788,TO_DATE('12-JAN-1983', 'DD-MON-YYYY'), 1100, NULL, 20);
SQL> INSERT INTO EMP VALUES (7900, 'JAMES', 'CLERK', 7698,TO_DATE('3-DEC-1981', 'DD-MON-YYYY'), 950, NULL, 30);
SQL> INSERT INTO EMP VALUES (7902, 'FORD', 'ANALYST', 7566,TO_DATE('3-DEC-1981', 'DD-MON-YYYY'), 3000, NULL, 20);
SQL> INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK', 7782,TO_DATE('23-JAN-1982', 'DD-MON-YYYY'), 1300, NULL, 10);
SQL>
SQL>
SQL> -- CREATE Table from another table with consitions
SQL>
SQL> CREATE TABLE newTable AS (SELECT * FROM emp WHERE sal > 2000);
SQL>
SQL> select * from newTable;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7566 JONES MANAGER 7839 02-APR-81 2975 20
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 09-DEC-82 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7902 FORD ANALYST 7566 03-DEC-81 3000 20
SQL>
SQL> drop table newTable;
SQL>
SQL> drop table emp;
SQL>
SQL>
SQL>
Oracle Job Schedule
Tutorial membuat schedule dari Procedure.
Oracle Procudure bisa di jalankan otomatis pada saat tertentu dengan cara menggunakan oracle job schedule. Biasanya hal ini di lakukan untuk memanipulasi data-data yg cukup besar, atau perhitungan-perhitungan khusus yang agak rumit dan membutuhkan waktu eksekusi yang cukup lama. Dengan menggunakan job schedule ini procedure akan dijalankan oleh system oracle sendiri sehingga crash data atau crash system dapat di hindari.
Interval Parameter :
Calendar expresions can have one of these values:
'Yearly','Monthly','Weekly','Daily','Hourly','Minutely','Secondely'
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name => 'bt_auto_schedule',
job_type => 'STORED_PROCEDURE',
job_action => 'bt_job',--procedure name
start_date => TO_TIMESTAMP_TZ('30-DEC-2008
00:00:00','DD-MM-YYYY HH24:MI:SS'),
repeat_interval => 'FREQ = DAILY; INTERVAL = 1');
END;
/
BEGIN
dbms_scheduler.enable('bt_auto_schedule');
END;
/
--
BEGIN
dbms_scheduler.disable('CLEAR_REPORT_BT', TRUE);
END;
/
NLS parameter on Oracle
Hal-hal yang membuat NLS Orcle menjadi penting :
1. format Date / time
oracle memang agak-agak rewel di datetime function , jika kita tidak melakukan
query dengan parameter date dan kita tidak tahu format dasar sysdate kita bakal
kerepotan.
2. currecy
disini kita akan tahu format currency yg kita butuhkan
Mengetahui setting NLS LANG pada oracle sangat penting sekali.
Dengan mengaetahui NLS Lang dalam setup/setting Oracle mempermudah kita dalam
menquery sebuah data. Setting NLS Lang antara lain :
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET WE8MSWIN1252
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
melihat data diatas, kita semakin tahu pentingnya setting NLS Lang di dalam Oracle.
Tanpa kita tahu bagaimana cara kita insert date/manupulasi data bentuk date,
itulah salah satu pentingnya kita tahu setting NLS Oracle.
Cara melihat setting yaitu menggunakan query SQL :
SELECT *
FROM v$nls_parameters
data akan keluar seperti diatas, sekitar 17 setting. Untuk mengubah setting NLS
dapat kita lakukan dengan script sebagai berikut :
ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN';
ALTER SESSION SET NLS_ISO_CURRENCY = 'AMERICA';
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'DD-MM-RR HH.MI.SSXFF AM';
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = 'DD-MM-RR HH.MI.SSXFF AM TZR';
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MM-RR';
commit;
pada script diatas saya mencoba mengubah setting date format dari DD-MON-RR menjadi
DD-MM-RR.
Semoga bisa membantu.
Oracle Tutorial

Situs ini saya dedikasikan buat para pencari Ilmu , untuk para praktisi IT yang membutuhkan tutorial Oracle, dan siapa saja yang mengenal Oracle.
Materi yang akan saya berikan antara lain :
1. Oracle Installation
2. Create Database
3. User Role
4. Penanganan Trouble Service (ORA-Error)
5. Oracle DB Administrator
6. SQL Query
- Oracle String
- Oracle Aritmatic
- Oracle Date Time Function
- Oracle Convertion
- Oracle Logical Expression
8.NLS
9.Oracle LinkOracle
Backup exp/imp, expdp/impdp
referenci :