Sabtu, 19 Juli 2014

PRAKTIKUM 2

PEMBAHASAN

I.       PENDAHULUAN
Definisi
Join merupakan operasi yang digunakan untuk menggabungkan kolom-kolom yang berasal dari dua table atau lebih dengan hasil berupa gabungan dari kolom-kolom yang berasal dari table-table tersebut.

Join
SQL
·         Inner Join
Yaitu bentuk kondisi join dimana di antara 2 atau lebih tabel yang ingin di join memiliki hubungan sehingga semua isi tabel yang di pilih bisa di tampilkan.
·            Outer Join
yaitu bentuk nilai join yang memenuhi dari kedua  tabel, Outer join terdiri dari 2 yaitu:
-             Left Outer Join
join digunakan untuk menampilkan semua data dari table sebelah kiri perintah left join beserta pasangannya dari table sebelah kanan.
SELECT field FROM table_1 LEFT JOIN table_2 on kondisi atau primary key
Left join memunculkan semua baris table pertama, bahkan jika tidak ada pasangannya di table kedua. Jika ada baris pada table pertama yang tidak ada. Pasangannya pada table kedua, maka akan dimunculkan juga
-             Right Outer Join
Digunakan untuk menampilkan semua data dari table sebelah kanan perintah right join beserta pasangan dari table sebelah kiri.
SELECT field FROM table_1 RIGHT JOIN table_2 on kondisi atau primary key
Akan memunculkan semua baris table kedua,bahkan tidak ada pasangannya di table pertama. Jika ada baris pada table kedua yang tidak ada pasangannya pada table pertama, maka akan dimunculkan.
·         Cross Join
Cross join merupakan bentuk penggabungan yang paling sederhana,tanpa ada kondisi.
SELECT field1,field2 FROM table_1 CROSS JOIN table_2
·         Union Join
Perintah union digunakan untuk memilih informasi yang berhungan dari dua table, mirip dengan perintah join,namun ketika menggunakan perintah union,tipe data semua kolom yang dipilih harus sama. UNION hanya memunculkan nilai unik.
SELECT field FROM table_1 UNION SELECT field FROM table_2
·         Union All
Berbeda dengan perintah UNION, perintah UNION ALL menggabungkan keseluruhan data walaupun data tersebut mempunyai isi yang sama. Untuk jelasnya kita ambil kembali contoh yang di atas.
SELECT field FROM table_1 UNION ALL SELECT field FROM table_2

ORACLE
·         Inner Join
Perintah untuk operasi penggabungan yang paling umum digunakan dan biasanya dikatakan sebagai default join tipe inner join hanya menampilkan data yang benar-benar terdapat di dalam table yang saling berhubungan.
SELECT field FROM table_1 INNER JOIN table_2 ON table_1.kondisi=table_2.kondisi
·         Outer Join
Merupakan gabungan data yang bersesuaian atau data yang memenuhikondisi join dan data yang tidak punya pasangan di table lawannya.
SELECT field_1,field_2 FROM table_1 OUTER JOIN table_2 ON table_1.kondisi=table_2.kondisi
-       Left Outer Join
Hanya jika baris ada dalam table yang tercamtum pada sisi kiri bergabung. Bila tidak ada data yang di temukan dari table di sisi kanan join.
SELECT field FROM table_1 LEFT JOIN table_2 on kondisi atau primary key.
-       Right Outer Join
Mengembalikan baris hanya jika baris ada dalam table di tentukan pada sisi kanan bergantung. Bila tidak ada datanya ditemukan dari meja di isi kiri bergabung,nulis di tempatkan ke dalm bidang di mana data akan dinyatakan ada.
SELECT field FROM table_1 RIGHT JOIN table_2 on kondisi atau primary key
·         Union Join
Operator union output barang yang ada di kedua set hasil. UNION ALL output operato semua item dalam dua set, apakah atau tidak kedua set berisi item.
SELECT field FROM table_1 UNION SELECT field FROM table_2;
·         Union All

SELECT field FROM table_1 UNION ALL SELECT field FROM table_2
I.          TUGAS LABORATORIUM
Pembuatan Tabel Join pada Sql dan Oracle
SQL Server
1.         Inner Join


Tampilan nama_pemasok,no.telps dari tb_pemasok,nama_barang1 dari tb_barang,tgl_pembayaran4 dan total_pembayaran dari tb_kredit.
2.      Cross Join

  

 tampilan nama pegawai dengan perintah cross join,yang akan di join dengan table pemasok dengan syntax select tb_pegawai.nama_pegawai, tb_pemasok from tb_pegawai cross join tb_pemasok.

3.       Union Join





Tampilan nama pegawai dengan perintah union,yang akan di join dengan table pemasok dengan syntax select nama_pegawai from tb_pegawai union select no_telps from tb_pemasok;.

4.      Left Join



 

Tampilan nama_pelanggan dari tb_pelanggan,nama_barang1, jumlah_barang2 dari tb_barang,tgl_membayar1, jumlah_transaksi dari tb_tunai.

5.      Right Join

Tampilan nama_pelanggan dari tb_pelanggan,nama_barang1 dan jumlah_barang2 dari tb_barang,nama_pemilik_kartu dan nama_kartu dari tb_kartu_kredit.

ORACLE
1.      Inner Join (tb_beli_putus)

Tampilan nama_pemasok dari tb_pemasok,id_pembelian2 dan id_barang dari tb_beli_putus,tgl_pembayaran dan jumlah_pembayaran dari tb_tunai.

2.      Left Join

 

Tampilan nama_pelanggan dari tb_pelanggan,nama_barang1 dan jumlah_barang2 dari tb_barang,tgl_membayar1 dan jumlah_transaksi dari tb_tb_tunai.

3.      3. Right Join

Tampilan nama_pelanggan dari tb_pelanggan,nama_barang1 dan jumlah_barang2 dari tb_barang,tgl_membayar, total_transaksi,nama_pemilik_kartu dan nama_kartu dari tb_kartu_kredit.


II.    TUGAS TAMBAHAN
Error Code Oracle
The Oracle oerr utilitas catatan ini tentang ORA - 12505 :
ORA - 12505 : TNS : pendengar saat ini tidak tahu SID diberikan dalam deskripsi connect
Penyebab :
pendengar menerima permintaan untuk membuat sambungan ke database atau layanan lainnya . Descriptor connect diterima oleh pendengar tertentu SID untuk sebuah contoh (biasanya contoh database ) yang baik belum dinamis terdaftar pendengar atau belum statis dikonfigurasi untuk pendengar . Ini mungkin merupakan kondisi sementara seperti setelah pendengar telah dimulai, tapi sebelum contoh database telah terdaftar pendengar .
Solusi:
-          Tunggu beberapa saat dan mencoba untuk menghubungkan kedua kalinya
-          Periksa mana kasus yang saat ini dikenal oleh pendengar dengan mengeksekusi : layanan lsnrctl <listener name>
-          Periksa bahwa parameter SID di deskriptor connect menentukan sebuah contoh yang dikenal oleh pendengar .
-          Periksa untuk sebuah event di file listener.log .
Sebuah situasi yang secara luas dilihat dengan ORA - 12505 keprihatinan " JDBC Thin Connection Kebingungan antara Layanan dan SID Hasil di ORA - 12505 " Masalah ini terlihat dalam versi 11.5.10 pada semua platform , dan terjadi ketika konektor tipis JDBC mencoba untuk menghubungkan antara RAC dengan nama Layanan bukannya SID .
Masalahnya di sini adalah bahwa string connect JDBC des tidak memiliki nama SID yang tepat , menyebabkan ORA - 12505 mengganggu .
Osama Mustafa menawarkan solusi pendengar ini untuk menyelesaikan ORA - 12505 dengan thin client JDBC .
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SCAN-LISTENER-NAME)(PORT=1530))(CONNECT_DATA=(SERVICE_NAME=Service-name)))
Setiap kali Anda telah bersaing DML berjalan terhadap data yang sama, Anda menjalankan resiko kebuntuan. Kondisi kebuntuan ini adalah masalah kuno yang dikenal sebagai "pelukan abadi"! Doc catatan coba lagi dapat bekerja: ORA-00060: kebuntuan terdeteksi sambil menunggu sumber daya
Penyebab :
Transaksi menemui jalan buntu satu sama lain sambil menunggu sumber daya.
Tindakan :
Lihatlah jejak file untuk melihat transaksi dan sumber daya yang terlibat. Coba lagi jika diperlukan.
Kebuntuan dalam hasil Oracle dalam kesalahan ini:
ORA-00060: kebuntuan terdeteksi sambil menunggu sumber daya
Jika ORA-00060 Anda disebabkan oleh sumber daya bersaing, pelukan abadi terjadi ketika tugas dibatalkan (Task B) mencoba untuk mengunci baris yang diadakan oleh tugas lain (Task A), yang, pada gilirannya, menunggu untuk tugas B untuk melepaskan kunci.Untuk mencegah terus-menerus menunggu, Oracle dibatalkan transaksi yang menyebabkan kebuntuan.
SQL> ORA-12154: TNS: tidak bisa menyelesaikan identifier menghubungkan ditentukan
SQL>
Database "akte10" hangat mulai.
Saya telah memeriksa script untuk db mulai dan menemukan bahwa itu panggilan  sqlplus dan menghubungkan sebagai intern.  Saya mencoba ini juga dan mendapat kesalahan yang sama. Tidak ada cara untuk terhubung ke  db baru. Aku sudah memeriksa entri dalam listener.ora dan tnsnames.ora  dan mereka tampaknya ok.
1.      Perlu ke install oracle instant client atau copy je. Dll yg berhubungan + tnsnames.ora + listener.ora pun sudah memadai.
Langsung aja ya… kmaren pas aku selesai clonning database oracle dari mesin 64bit ke 32bit… kemudian aku merger antar skemanya dan muncullah error ORA-06553: PLS-801: internal error [56319], kayaknya perlu di upgrade ya/malah sebaliknya… jadi begini akhirnya
SQL>shutdown immediate
SQL>startup upgrade
SQL>@?/rdbms/admin/utlirp.sql
SQL>shutdown immediate
SQL>startup
Setelah Anda telah membuktikan bahwa TNSNAMES berbicara dengan pendengar benar, langkah berikutnya adalah untuk mencoba koneksi penuh untuk contoh. Untuk melakukan hal ini menggunakan SQLPlus we.ll:
sqlplus [username] / [password] @ <your_tns_entry_name>
Jika berhasil, Anda akan berhasil login ke instance. Jika tidak, berikut adalah beberapa kesalahan umum:
ORA-01017: invalid username / password; logon ditolak
Ini sebenarnya kesalahan baik dalam keadaan ini! Meskipun Anda tidak menggunakan username atau password yang benar, Anda harus telah berhasil melakukan kontak dengan contoh
ORA - 12514 : TNS : pendengar tidak bisa menyelesaikan SERVICE_NAME diberikan dalam connect
Ini merupakan kesalahan umum dan itu berarti bahwa , sementara pendengar itu dihubungi , database ( atau lebih tepatnya layanan ) ditentukan dalam TNSNAMES bukan salah satu dari hal-hal yang ia mendengarkan keluar untuk .
Mulailah dengan melihat tnsnames.ora Anda . Di dalamnya , Anda akan pengaturan seperti SERVICE_NAME = <name> .
Jika Anda menjalankan contoh database tunggal ( mis. tidak RAC ) , dan Anda yakin bahwa Anda tidak menggunakan layanan , mungkin akan lebih mudah untuk mengubah SERVICE_NAME = ke SID = dalam TNSNAMES Anda . Menggunakan nama layanan adalah cara yang lebih modern dalam melakukan sesuatu , dan itu memang memiliki manfaat , namun SID masih bekerja dengan baik ( untuk sekarang ) .
Jika Anda lebih memilih untuk terus menggunakan nama layanan , Anda harus terlebih dahulu memeriksa bahwa Anda belum salah eja nama layanan di TNSNAMES Anda . Jika ia tampak baik-baik saja , selanjutnya memeriksa bahwa pendengar yang mendengarkan untuk layanan ini . Lakukan ini dengan menjalankan ' layanan lsnrctl ' pada server Anda . Jika tidak ada entri untuk layanan Anda , Anda perlu memastikan bahwa parameter service_names diatur dengan benar pada database .
Kami akan menggunakan tnsping untuk menyelesaikan langkah ini . Ini adalah kesalahpahaman umum bahwa tnsping konektivitas tes untuk contoh . Dalam kenyataannya , hanya tes konektivitas ke pendengar .
Di sini, kita akan menggunakannya untuk membuktikan bahwa a) tnsnames.ora memiliki nama host dan port yang benar , dan b ) bahwa ada pendengar mendengarkan pada host dan port tertentu . Jalankan tnsping :
tnsping<your_tns_entry_name>
Jika berhasil, Anda akan melihat sesuatu seperti ini :

oracle @ bloo $ tnspinng scr9
Digunakan TNSNAMES adaptor untuk menyelesaikan alias
Mencoba untuk menghubungi ( DESCRIPTION = ( ADDRESS_LIST = ( ADDRESS =
( PROTOKOL = TCP ) ( HOST = bloo ) ( PORT = 1521 ) ) ) ( CONNECT_DATA =
( SERVER = DEDICATED ) ( SERVICE_NAME = scr9 ) ) )
OK ( 40 msec )
Jika tidak, berikut adalah beberapa kesalahan umum , dan beberapa saran untuk memperbaiki mereka :
TNS - 03505 : Gagal untuk menyelesaikan nama
Nama database yang ditentukan tidak ditemukan di tnsnames.ora , onames atau ldap . Ini berarti bahwa tnsping bahkan belum sampai sejauh mencoba untuk melakukan kontak dengan server - itu hanya tidak dapat menemukan catatan database yang sedang Anda coba untuk tnsping . Pastikan bahwa Anda telah dieja nama database dengan benar , dan bahwa ia memiliki sebuah entri di tnsnames.ora tersebut .
Jika Anda memiliki sqlnet.ora , melihat untuk pengaturan NAMES.DEFAULT_DOMAIN . Jika sudah diatur , maka semua entri dalam tnsnames.ora Anda harus memiliki akhiran domain yang cocok .
TNS - 12545 : Connect gagal karena host target atau objek tidak ada
Host tertentu dalam TNSNAMES tidak dihubungi . Pastikan Anda telah dieja nama host dengan benar . Jika Anda memiliki , coba ping host dengan ' ping <hostname> ' . Jika ping kembali ' tidak diketahui tuan rumah , berbicara dengan admin jaringan Anda . Mungkin saja Anda memiliki masalah DNS ( Anda bisa mencoba menggunakan alamat IP jika Anda memilikinya untuk tangan ) . Jika Anda mendapatkan ' host unreachable ' , sekali lagi berbicara dengan orang jaringan Anda , masalahnya bisa turun ke masalah routing atau firewall .
TNS - 12541 : TNS : no pendengar
Hostname adalah valid tapi pendengar tidak dihubungi . Hal untuk memeriksa adalah bahwa TNSNAMES memiliki port yang benar ( dan hostname ) tertentu , dan bahwa pendengar berjalan pada server dan menggunakan port yang benar .
tnsping hang untuk waktu yang lama
Aku pernah melihat ini terjadi dalam situasi di mana ada sesuatu yang mendengarkan pada host / port - tetapi tidak seorang pendengar oracle . Pastikan Anda telah menetapkan port yang benar , dan bahwa pendengar Anda berjalan . Jika semua tampak ok, mencoba melakukan ' netstat - ap | grep 1521 ' ( atau port apa pun yang Anda gunakan) untuk mengetahui program apa yang mendengarkan pada port tersebut.

ORACLE memperbaiki [ORA-00845:MEMORY_TARGET]
Setelah merubah configurasi pada VM ORACLE dengan OS REDHAT 5.5, saya mengalami problem di atas.  Error ini  disebakan /dev/shm adalah temporary file system yang menjaga
semua file system pada virtual memory untuk mempercepat beberapa process system.
Untuk melakukan perbaikan di atas maka yang perlu dilakukan, langkah-langkahnya adalah sebagai berikut:
1.      Meningkatkan size dari /dev/shm
#mount -0 remount,size=35 /dev/shm
2.      Untuk membuat perubahan secara permanen                        
#vi /etc/fstab
tmpfs  /dev/shm  tmpfs defaults,size=3G  0 0
#mount -a |echo "update new fstab"

Oracle restart
SQL> startup
ORACLE instance started.
Total System Global Area   2037673984 bytes
Fixed Size                 2214816 bytes
Variable Size                        1174406240 bytes
Database Buffers     855638016 bytes
Redo Buffers                        5414912 bytes
Database mounted.
Database opened.

Database Instance tidak bisa startup - ORA-011033: ORACLE initialization or shutdown in progress
Jika database tidak bisa distart lakukan langkah sebagai berikut: 
>sqlplus /nolog
> SQL> connect / as sysdba
Connected.
> SQL> shutdown abort
ORACLE Instance shut down.
> SQL> starup nomount
ORACLE Instance started
> SQL> alter database mount;
> SQL> alter database open;

Jika masih mendapatkan error seperti di bawah ini, lakukan perintah berikutnya:
ORA-00600: internal error code, arguments: [kcratr1_lostwrt]
> SQL> startup mount
ORACL Instance started
> SQL> recover database
Media recovery complete
> SQL> alter database open
Database altered
Error Code Pada SQL
Cause :
Saat buka data ada pesan : ISC ERROR CODE 335544... ISC Error Message : Can not attach to password database Sql Error Code -902 Sql Error message unsuccesfull execution caused by system error that recludes succesfull execution of subsequent stateme
Action :
1.      My Computer (klik kanan pilih properties) > advanced > klik setting di bagian performance > klik data execution prevention >add  ( arahkan ke local disk C > program       file > firebird > firebird 1.5 > bin > fbserver ) > pilih apply  
2.      Masih di data execution prevention >add  ( arahkan ke local disk C > program file > zahir > zahir app > apply > ok  
3.      Restart Komputer 

Error 29506
Cause : Akses pada OS Windows 7/Vista/8 cukup ketat. Dimana beberpa kegiatan software harus di running dalam keadaan sebagai “Administrator” agar berjalan semestinya.
Action : Dengan membebaskan akses pada UAC (User Account Controlnya).
Error 18456
Cause : Dijalankan sebagai user: Domain \ XXX.Service. Login gagal untuk pengguna 'SSBF \ SQL.Service'. [SQLSTATE 28000] (Error 18456).Langkah gagal.
Action : Langkah 1: Periksa nama account sumber SQL agen server layanan logon
Peralatan> Konfigurasi - - Semua program -> SQL server 2008> Manajer konfigurasi SQL Server. Pergi ke server agen SQL -> properties -> Periksa tab logon dan menemukan nama akun.
Langkah 2: Periksa sama tersedia di server target SQL.
Di bawah tab keamanan -> login. Jika tidak tersedia menambahkan pengguna domain dengan izin yang diperlukan pada mesin target Anda. 

Tidak ada komentar:

Posting Komentar