Oracle
Membahas semua hal tentang oracle
Change tablespace pada Table
0Jika anda ingin mengubah storage table yang semua berada di tablespace A ingin anda pindahkan ke tablespace B berikut langkah-langkah untuk melakukan hal diatas.
contoh disini saya akan menggunakan sqlplus saja tidak menggunakan Toad atau Sql Developer.
Langkah Pertama
Konek ke skema database dimana table akan di ubah tablespacenya.Sebagai contoh saya akan mengubah tablespace dari table TH dari tablespace DATA ke tablespace CORE_CRM_TRX.
$ sqlplus hr/hr@sid
SQL> select tablespace_name from all_tables where table_name = 'TH';
TABLESPACE_NAME
------------------
DATA
Langkah Kedua
SQL> alter table th move tablespace CORE_CRM_TRX;
Table altered
Langkah Ketiga
Konek ke skema database dimana table akan di ubah tablespacenya.Sebagai contoh saya akan mengubah tablespace dari table TH dari tablespace DATA ke tablespace CORE_CRM_TRX.
SQL> select tablespace_name from all_tables where table_name = 'TH';
TABLESPACE_NAME
------------------
CORE_CRM_TRX
Sekarang table TH sudah menggunakan tablespace CORE_CRM_TRX.
Using oracle built in function
1Berikut dijelaskan contoh-contoh penggunaan fungsi-fungsi oracle yang sudah di post berikutnya;
Penggunaan UPPER dan LOWER
SQL> select UPPER(first_name) T1, LOWER(last_name) T2 from employees;
SQL>select UPPER('Nailuvar Education Center') as TEST_UPPER from dual;
Contoh Penggunaan fungsi CONCAT
SQL> select CONCAT('My Name is ', first_name) name from employees;
SQL>select CONCAT('Nailuvar ', ' Education Center') as header from dual;
Oracle Function Reference
0Oracle mempunya built in function yang cukup lengkap untuk beberapa kebutuhan. Berikut adalah daftar fungsi-fungsi yang tersedia di oracle yang sering digunakan.
Single Row Function
Character Function
| Nama Fungsi | Kegunaan | Contoh |
|---|---|---|
| LOWER (column | expression) | Fungsi yang digunakan untuk merubah column | expression menjadi lower case | lihat contoh |
| UPPER(column | expression) | Fungsi yang digunakan untuk merubah column | expression menjadi upper case / Huruf kapital | lihat contoh |
| CONCAT(column1 | expression1,column2 | expression2) | Fungsi yang digunakan untuk menggabungkan column1 | expression1 dengan column2 | expression2 menjadi menjadi satu kata | lihat contoh |
EXECUTE IMMEDIATE
0Execute immediate merupakan pengganti dari DBMS_SQL, jika kita sebelumnya menggunakan DBMS_SQL cukup merepotkan sekarang anda tidak perlu kawatir lagi. Yang perlu diingat perintah execute immediate tidak otomatis commit untuk perintah-perintah DML, jadi kita harus melakukan commit atau rollback manual. Sql yang dieksekusi tidak perlu diakhiri dengan tanda titik koma (;).
Berikut beberapa contoh penggunaan execute immediate.
Menggunakan perintah DDL
begin execute immediate 'create table belajar(t1 number(3))'; end; SQL> select * from belajar; T1 ---
Menggunakan Variable dalam dinamik SQL
Contoh berikut adalah insert data ketable belajar.
declare v_t1 number(3); -- deklarasi variable v_t1 begin v_t1 := 123; -- assignment varibale v_t1 dengna nilai 123 execute immediate 'insert into belajar(t1) values (:t1) ' using v_t1; commit; select * from belajar; end; SQL> select * from belajar; T1 ---- 123
“:t1″ adalah variable yang akan digantikan oleh v_t1, binding yang digunakan adalah “:”
Mengembalikan Nilai
Untuk mendapatkan nilai dari execute immediate kita menggunakan keyword INTO
declare
v_t1 number(3); -- deklarasi variable
begin
execute immediate 'select t1 + 5 from belajar' into v_t1;
dbms_output.put_line ('Hasil : '||v_t1);
Hasil : 128
end;
jika select membutuhkan kondisi, misal dengan tambahan filter t1=x query menjadi execute ‘select t1 + 5 from belajar where t1=:x’ into v_t1 using x ;
Menjalankan Package/Store Procedure / Function
Contoh procedure yang digunakan adalah
declare
v_str varchar2(20);
v_serviceName varchar2(40) : 'MyPackage.printHello';
begin
v_str := 'Selamat Datang di Nailuvar Education Center';
execute immediate 'BEGIN '|| v_serviceName || ' (:a,:b); END;' using in v_str , out v_status;
dbms_output.put_line ('Status = '||v_status);
end;
Menyimpan hasil dalam bentuk Record PL/SQL
contoh ini akan menampilkan data employee pada schema HR, data yang akan ditampilkan adalah employee_id dan nama.
declare -- deklarasi type record dengan nama RData TYPE RData IS RECORD ( emp_id number(9), emp_name varchar2(40) ); --deklarasi variable v_data dengan type RData. begin EXECUTE IMMEDIATE 'select employee_id,first_name || last_name from employee where employee_id = 1234 ' into v_data; end;
demikian beberapa contoh penggunaan execute immediate yang membuat pemrosesan query dinamis menjadi lebih simple jika dibandingkan menggunakan DBMS_SQL. Yang harus diperhatikan adalah penanganan error, setiap kemungkinan error harus ditangani.
Selamat Mencoba.