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.
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]
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