<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-31436977</id><updated>2011-09-11T04:55:48.693-07:00</updated><title type='text'>Oracle Tips and Tricks</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://oracleboy.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://oracleboy.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Oracle Boy</name><uri>http://www.blogger.com/profile/00666723192535938544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://photos1.blogger.com/blogger/881/3402/1600/dj.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-31436977.post-115431529581866670</id><published>2006-07-30T20:07:00.000-07:00</published><updated>2006-08-01T19:21:37.486-07:00</updated><title type='text'>Python and Oracle</title><content type='html'>Simple IN Parameterim&lt;br /&gt;export cx_Oraclev_conn = cx_Oracle.connect("scott/tiger@oracledb")&lt;br /&gt;v_cur = v_conn.cursor()&lt;br /&gt;arg_1 = v_cur.var(cx_Oracle.NUMBER)&lt;br /&gt;arg_2 = v_cur.var(cx_Oracle.NUMBER)&lt;br /&gt;result = v_cur.execute("""BEGIN:&lt;br /&gt;p_Value := 20;&lt;br /&gt;f_test(:p_Value,:p_value_o);&lt;br /&gt;END;""",p_Value = arg_1, p_Value_o = arg_2)&lt;br /&gt;print "Hasil IN :", arg_1.getvalue()&lt;br /&gt;print "Hasil OUT :", arg_2.getvalue()&lt;br /&gt;&lt;br /&gt;Simple IN / OUT Parameter&lt;br /&gt;&lt;br /&gt;import cx_Oracle&lt;br /&gt;&lt;br /&gt;v_conn    = cx_Oracle.connect("scott/tiger@oracledb")&lt;br /&gt;v_cur     = v_conn.cursor()&lt;br /&gt;# make variable input&lt;br /&gt;v_cur.setinputsizes(arg_in = cx_Oracle.NUMBER)&lt;br /&gt;v_input   = raw_input("Masukan Bilangan ? ")&lt;br /&gt;&lt;br /&gt;# make variable out &lt;br /&gt;arg_out   = v_cur.var(cx_Oracle.NUMBER)&lt;br /&gt;result    = v_cur.execute("""BEGIN&lt;br /&gt;                                 f_test(:arg_in, :p_value_o);&lt;br /&gt;                              END;""",&lt;br /&gt;                              arg_in    = v_input,   #place variable here(text/inputan)&lt;br /&gt;                              p_Value_o = arg_out)&lt;br /&gt;&lt;br /&gt;print "Hasil Input : ", v_input&lt;br /&gt;print "Hasil Out   : ", arg_out.getvalue()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Simple Calling Function&lt;br /&gt;&lt;br /&gt;import cx_Oracle&lt;br /&gt;&lt;br /&gt;v_conn    = cx_Oracle.connect("scott/tiger@oracledb")&lt;br /&gt;v_cur     = v_conn.cursor()&lt;br /&gt;&lt;br /&gt;# make variable input&lt;br /&gt;v_cur.setinputsizes(arg_in = cx_Oracle.NUMBER)&lt;br /&gt;v_input   = raw_input("Masukan Bilangan ? ")&lt;br /&gt;&lt;br /&gt;# make variable out &lt;br /&gt;arg_out   = v_cur.var(cx_Oracle.NUMBER)&lt;br /&gt;result    = v_cur.execute("""BEGIN&lt;br /&gt;                                 :p_value_o := f_test1(:arg_in);&lt;br /&gt;                              END;""",&lt;br /&gt;                              arg_in    = v_input,   #place variable here(text/inputan)&lt;br /&gt;                              p_Value_o = arg_out)&lt;br /&gt;&lt;br /&gt;print "Hasil Input : ", v_input&lt;br /&gt;print "Hasil Out   : ", arg_out.getvalue()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Simple Bind Cursor&lt;br /&gt;import cx_Oracle&lt;br /&gt;&lt;br /&gt;v_conn    = cx_Oracle.connect("scott/tiger@oracledb")&lt;br /&gt;v_cur     = v_conn.cursor()&lt;br /&gt;v_cur.arraysize = 50&lt;br /&gt;&lt;br /&gt;# make variable input&lt;br /&gt;v_cur.setinputsizes(arg_in_1 = cx_Oracle.NUMBER)&lt;br /&gt;v_cur.setinputsizes(arg_in_2 = cx_Oracle.NUMBER)&lt;br /&gt;v_input_1   = raw_input("From  Empno  ? ")&lt;br /&gt;v_input_2   = raw_input("To    Empno  ? ")&lt;br /&gt;&lt;br /&gt;v_cur.execute("""&lt;br /&gt;                begin&lt;br /&gt;                  open :p_Cursor for select empno, ename from emp&lt;br /&gt;                                     where empno between :arg_in_1 and :arg_in_2;&lt;br /&gt;                end;""",&lt;br /&gt;                arg_in_1  = v_input_1,&lt;br /&gt;                arg_in_2  = v_input_2,              &lt;br /&gt;                p_Cursor  = v_cur)&lt;br /&gt;v_row = v_cur.fetchone()&lt;br /&gt;while v_row != None:&lt;br /&gt;      print str(v_row[0]) + " : " +str(v_row[1])&lt;br /&gt;      v_row = v_cur.fetchone()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Simple Refcursor&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE package pkg_TestOutCursors as&lt;br /&gt;&lt;br /&gt;  type udt_RefCursor is ref cursor;&lt;br /&gt;&lt;br /&gt;  procedure TestOutCursor (&lt;br /&gt;    a_MaxIntValue  number,&lt;br /&gt;    a_Cursor   out udt_RefCursor&lt;br /&gt;  );&lt;br /&gt;&lt;br /&gt;end;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE package body pkg_TestOutCursors as&lt;br /&gt;&lt;br /&gt;  procedure TestOutCursor (&lt;br /&gt;    a_MaxIntValue  number,&lt;br /&gt;&lt;br /&gt;    a_Cursor   out udt_RefCursor&lt;br /&gt;  ) is&lt;br /&gt;  begin&lt;br /&gt;    open a_Cursor for&lt;br /&gt;      select&lt;br /&gt;        IntCol,&lt;br /&gt;        StringCol&lt;br /&gt;      from TestStrings&lt;br /&gt;      where IntCol &lt;= a_MaxIntValue&lt;br /&gt;      order by IntCol;&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;end;&lt;br /&gt;/&lt;br /&gt;import cx_Oracle&lt;br /&gt;&lt;br /&gt;v_conn    = cx_Oracle.connect("cx_oracle/dev@oracledb")&lt;br /&gt;v_cur     = v_conn.cursor()&lt;br /&gt;v_cur.arraysize = 50&lt;br /&gt;&lt;br /&gt;# make variable input&lt;br /&gt;v_input_1   = raw_input("From  Empno  ? ")&lt;br /&gt;&lt;br /&gt;v_cur.callproc("pkg_TestOutCursors.TestOutCursor", (v_input_1, v_cur))&lt;br /&gt;v_row = v_cur.fetchone()&lt;br /&gt;while v_row != None:&lt;br /&gt;      print str(v_row[0]) + " : " +str(v_row[1])&lt;br /&gt;      v_row = v_cur.fetchone()&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31436977-115431529581866670?l=oracleboy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleboy.blogspot.com/feeds/115431529581866670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31436977&amp;postID=115431529581866670&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115431529581866670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115431529581866670'/><link rel='alternate' type='text/html' href='http://oracleboy.blogspot.com/2006/07/python-and-oracle.html' title='Python and Oracle'/><author><name>Oracle Boy</name><uri>http://www.blogger.com/profile/00666723192535938544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://photos1.blogger.com/blogger/881/3402/1600/dj.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31436977.post-115370996504467321</id><published>2006-07-23T19:57:00.000-07:00</published><updated>2006-07-23T19:59:25.046-07:00</updated><title type='text'>Calling Oracle Stored Procedures with PHP</title><content type='html'>Menarik untuk dicoba bagaimana PHP dapat memanggil Oracle Store Procedure dengan memakai Parameter IN / OUT.&lt;br /&gt;&lt;br /&gt;Saya Mulai dengan Simple Store Procedure yang ada Parameter IN dan OUT &lt;br /&gt;&lt;br /&gt;SQL&gt; connect scott/tiger@oracledb;&lt;br /&gt;Connected.&lt;br /&gt;SQL&gt; CREATE OR REPLACE PROCEDURE &lt;br /&gt;  2          sayHello (name IN VARCHAR2, greeting OUT VARCHAR2) &lt;br /&gt;  3      AS&lt;br /&gt;  4          BEGIN&lt;br /&gt;  5              greeting := 'Hello ' || name;&lt;br /&gt;  6          END;&lt;br /&gt;  7  /&lt;br /&gt;&lt;br /&gt;Procedure created.&lt;br /&gt;&lt;br /&gt;Kita Panggil Store procedure dari PHP&lt;br /&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;$conn = oci_connect('SCOTT','TIGER','ORACLEDB') or die;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$sql = 'BEGIN sayHello(:name, :message); END;';&lt;br /&gt;&lt;br /&gt;$stmt = oci_parse($conn,$sql);&lt;br /&gt;&lt;br /&gt;//  Bind the input parameter&lt;br /&gt;oci_bind_by_name($stmt,':name',$name,32);&lt;br /&gt;&lt;br /&gt;// Bind the output parameter&lt;br /&gt;oci_bind_by_name($stmt,':message',$message,32);&lt;br /&gt;&lt;br /&gt;// Assign a value to the input &lt;br /&gt;$name = ' I am OUT Parameter ';&lt;br /&gt;&lt;br /&gt;oci_execute($stmt);&lt;br /&gt;&lt;br /&gt;// $message is now populated with the output value&lt;br /&gt;print "$message\n";&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/881/3402/320/in.jpg" border="0" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31436977-115370996504467321?l=oracleboy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleboy.blogspot.com/feeds/115370996504467321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31436977&amp;postID=115370996504467321&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115370996504467321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115370996504467321'/><link rel='alternate' type='text/html' href='http://oracleboy.blogspot.com/2006/07/calling-oracle-stored-procedures-with.html' title='Calling Oracle Stored Procedures with PHP'/><author><name>Oracle Boy</name><uri>http://www.blogger.com/profile/00666723192535938544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://photos1.blogger.com/blogger/881/3402/1600/dj.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31436977.post-115370968828345300</id><published>2006-07-23T19:54:00.000-07:00</published><updated>2006-07-23T19:54:48.286-07:00</updated><title type='text'>Query Absensi</title><content type='html'>Query Absensi&lt;br /&gt;Lanjutan Program Absensi yang telah saya buat ada article menarik dari indodba.net tentang query absensi. &lt;br /&gt;&lt;br /&gt;Bagaimana cara membuat query absensi dengan table seperti ini :&lt;br /&gt;&lt;br /&gt;NOINDUK    CODE     TANGGAL&lt;br /&gt;-------    ----     -------------------&lt;br /&gt;001        A        21-07-2004 06:00:00&lt;br /&gt;001        B        21-07-2004 17:30:00&lt;br /&gt;001        A        22-07-2004 06:00:00&lt;br /&gt;001        A        23-07-2004 07:00:00&lt;br /&gt;001        A        23-07-2004 07:15:00&lt;br /&gt;001        B        24-07-2004 17:30:00&lt;br /&gt;&lt;br /&gt;Untuk menyatakan masuk dan keluarnya karyawan dinyatakan dengan nilai&lt;br /&gt;CODE, yaitu A = masuk dan B = Keluar&lt;br /&gt;Terkadang dalam satu hari seorang karyawan mempunyai nilai A dan B.&lt;br /&gt;Tetapi kadang hanya ada nilai A saja atau B saja.&lt;br /&gt;Bagaimana cara membuat querynya hingga membentuk format seperti ini &lt;br /&gt;&lt;br /&gt;NOINDUK   TANGGAL       JAM_MASUK    JAM_KELUAR&lt;br /&gt;-------   ----------    ---------    ----------&lt;br /&gt;001       21-07-2004    06:00:00     17:30:00&lt;br /&gt;001       22-07-2004    06:00:00&lt;br /&gt;001       23-07-2004    07:00:00&lt;br /&gt;001       24-07-2004                 17:30:00&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Terima Kasih&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Answer :&lt;br /&gt;&lt;br /&gt;Untuk membuat query seperti yang diinginkan membutuhkan&lt;br /&gt;table bantuan yang berisi daftar tanggal-tanggal.&lt;br /&gt;Berikut ini simulasi query absensi :&lt;br /&gt;&lt;br /&gt;drop table karyawan cascade constraint;&lt;br /&gt;create table karyawan(&lt;br /&gt;noinduk varchar2(5) primary key,&lt;br /&gt;nama varchar2(30));&lt;br /&gt;drop table data_real cascade constraint;&lt;br /&gt;create table data_real(&lt;br /&gt;noinduk varchar2(5),&lt;br /&gt;code varchar2(1),&lt;br /&gt;tanggal date);&lt;br /&gt;insert into karyawan values('001','AGUS');&lt;br /&gt;insert into karyawan values('002','HERMAN');&lt;br /&gt;insert into karyawan values('003','AGUNG');&lt;br /&gt;commit;&lt;br /&gt;/* Untuk karyawan 001 */&lt;br /&gt;insert into data_real &lt;br /&gt;values('001','A',to_date('01/06/04 07:30','dd/mm/yy hh24:mi'));&lt;br /&gt;insert into data_real &lt;br /&gt;values('001','A',to_date('01/06/04 07:45','dd/mm/yy hh24:mi'));&lt;br /&gt;insert into data_real &lt;br /&gt;values('001','B',to_date('01/06/04 17:00','dd/mm/yy hh24:mi'));&lt;br /&gt;insert into data_real &lt;br /&gt;values('001','B',to_date('01/06/04 17:05','dd/mm/yy hh24:mi'));&lt;br /&gt;&lt;br /&gt;insert into data_real &lt;br /&gt;values('001','A',to_date('02/06/04 06:30','dd/mm/yy hh24:mi'));&lt;br /&gt;insert into data_real &lt;br /&gt;values('001','B',to_date('02/06/04 16:00','dd/mm/yy hh24:mi'));&lt;br /&gt;&lt;br /&gt;insert into data_real &lt;br /&gt;values('001','B',to_date('03/06/04 17:00','dd/mm/yy hh24:mi'));&lt;br /&gt;&lt;br /&gt;/* Untuk karyawan 002 */&lt;br /&gt;insert into data_real &lt;br /&gt;values('002','A',to_date('01/06/04 06:55','dd/mm/yy hh24:mi'));&lt;br /&gt;insert into data_real &lt;br /&gt;values('002','A',to_date('01/06/04 07:00','dd/mm/yy hh24:mi'));&lt;br /&gt;&lt;br /&gt;insert into data_real &lt;br /&gt;values('002','A',to_date('02/06/04 07:00','dd/mm/yy hh24:mi'));&lt;br /&gt;insert into data_real &lt;br /&gt;values('002','B',to_date('02/06/04 17:00','dd/mm/yy hh24:mi'));&lt;br /&gt;insert into data_real &lt;br /&gt;values('002','B',to_date('02/06/04 17:15','dd/mm/yy hh24:mi'));&lt;br /&gt;&lt;br /&gt;insert into data_real &lt;br /&gt;values('002','B',to_date('03/06/04 15:00','dd/mm/yy hh24:mi'));&lt;br /&gt;&lt;br /&gt;/* Untuk karyawan 003 */&lt;br /&gt;insert into data_real &lt;br /&gt;values('003','A',to_date('01/06/04 07:00','dd/mm/yy hh24:mi'));&lt;br /&gt;insert into data_real &lt;br /&gt;values('003','B',to_date('01/06/04 17:00','dd/mm/yy hh24:mi'));&lt;br /&gt;&lt;br /&gt;insert into data_real &lt;br /&gt;values('003','A',to_date('02/06/04 06:30','dd/mm/yy hh24:mi'));&lt;br /&gt;insert into data_real &lt;br /&gt;values('003','B',to_date('02/06/04 16:00','dd/mm/yy hh24:mi'));&lt;br /&gt;&lt;br /&gt;insert into data_real &lt;br /&gt;values('003','A',to_date('03/06/04 06:30','dd/mm/yy hh24:mi'));&lt;br /&gt;insert into data_real &lt;br /&gt;values('003','B',to_date('03/06/04 17:00','dd/mm/yy hh24:mi'));&lt;br /&gt;commit;&lt;br /&gt;&lt;br /&gt;Berikut ini adalah daftar tanggal-tanggal yang nantinya&lt;br /&gt;akan dijoinkan pada table DATA_REAL.&lt;br /&gt;&lt;br /&gt;drop table my_date;&lt;br /&gt;create table my_date(tanggal date);&lt;br /&gt;declare&lt;br /&gt;tgl_awal date;&lt;br /&gt;begin&lt;br /&gt;tgl_awal := to_date('01/01/02','dd/mm/yy');&lt;br /&gt;for i in 1..5000 loop&lt;br /&gt;    insert into my_date values(tgl_awal+i);&lt;br /&gt;end loop;&lt;br /&gt;end;&lt;br /&gt;/&lt;br /&gt;commit;&lt;br /&gt;&lt;br /&gt;Dan querynya menjadi seperti ini :&lt;br /&gt;&lt;br /&gt;select a1.noinduk,&lt;br /&gt;       a1.tanggal,&lt;br /&gt;       min(a1.jam_masuk) as jam_masuk,&lt;br /&gt;       max(a1.jam_keluar) as jam_keluar&lt;br /&gt;from (       &lt;br /&gt;select a.noinduk,&lt;br /&gt;       a.code,&lt;br /&gt;       trunc(a.tanggal) as tanggal,&lt;br /&gt;       decode(a.code,'A',to_char(a.tanggal,'hh24:mi:ss'),null) as jam_masuk,&lt;br /&gt;       decode(a.code,'B',to_char(a.tanggal,'hh24:mi:ss'),null) as jam_keluar&lt;br /&gt;from data_real a, my_date b&lt;br /&gt;where trunc(a.tanggal) = b.tanggal&lt;br /&gt;) a1&lt;br /&gt;group by a1.noinduk, a1.tanggal;&lt;br /&gt;&lt;br /&gt;NOINDUK TANGGAL   JAM_MASUK JAM_KELUAR&lt;br /&gt;------- --------- --------- -----------                                               &lt;br /&gt;001     01-JUN-04 07:30:00  17:05:00                                               &lt;br /&gt;001     02-JUN-04 06:30:00  16:00:00                                               &lt;br /&gt;001     03-JUN-04           17:00:00                                               &lt;br /&gt;002     01-JUN-04 06:55:00                                                        &lt;br /&gt;002     02-JUN-04 07:00:00  17:15:00                                               &lt;br /&gt;002     03-JUN-04           15:00:00                                               &lt;br /&gt;003     01-JUN-04 07:00:00  17:00:00                                               &lt;br /&gt;003     02-JUN-04 06:30:00  16:00:00                                               &lt;br /&gt;003     03-JUN-04 06:30:00  17:00:00&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31436977-115370968828345300?l=oracleboy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleboy.blogspot.com/feeds/115370968828345300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31436977&amp;postID=115370968828345300&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115370968828345300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115370968828345300'/><link rel='alternate' type='text/html' href='http://oracleboy.blogspot.com/2006/07/query-absensi.html' title='Query Absensi'/><author><name>Oracle Boy</name><uri>http://www.blogger.com/profile/00666723192535938544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://photos1.blogger.com/blogger/881/3402/1600/dj.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31436977.post-115370956762804859</id><published>2006-07-23T19:48:00.000-07:00</published><updated>2006-07-23T19:52:47.646-07:00</updated><title type='text'>Membuat Program Absensi</title><content type='html'>Setelah mengetahui bagaimana cara oracle forms menyimpan Image sekarang kita coba untuk membuat program absensi, Intinya program ini akan mengambil data pegawai beserta gambarnya dan akan menyimpan jam masuk dan jam keluar.&lt;br /&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/881/3402/320/absensi.1.jpg" border="0" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Kalau kita lihat program absensi di atas untuk untuk menampilkan jam saya menggunakan TIMER oracle form, dan ada juga penggunaan OLE untuk ngeluarin sound (Fungsi soundnya saya dapat dari Internet tapi lupa di mana linknya !!!, Maaf yang punya fungsi ini saya pake yah ) yang keluar “Thank You” kalau anda terdaftar sebagai pegawai. &lt;br /&gt;&lt;br /&gt;Ini Fungsi untuk Soundnya :&lt;br /&gt;FUNCTION speak(Text IN varchar2, Speed IN number DEFAULT 150) RETURN boolean IS&lt;br /&gt; DirectSS ole2.obj_type;&lt;br /&gt; ArgList ole2.obj_type;&lt;br /&gt; Speaking number;&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt; if Text is null then&lt;br /&gt;  return FALSE;&lt;br /&gt; end if;&lt;br /&gt;&lt;br /&gt; -- Create Microsoft Direct Speech Synthesis Control Object&lt;br /&gt; DirectSS := OLE2.create_obj('Speech.VoiceText');&lt;br /&gt;&lt;br /&gt; -- Register application&lt;br /&gt; ArgList := ole2.create_arglist;&lt;br /&gt; ole2.add_arg(ArgList, 'Oracle'); &lt;br /&gt; ole2.add_arg(ArgList, 'Forms'); &lt;br /&gt; ole2.invoke(DirectSS, 'Register', ArgList);&lt;br /&gt; ole2.destroy_arglist(ArgList);&lt;br /&gt;&lt;br /&gt; -- Set control properties&lt;br /&gt; ole2.set_property(DirectSS, 'SuppressExceptions', 1);&lt;br /&gt; ole2.set_property(DirectSS, 'Enabled', 1);&lt;br /&gt; ole2.set_property(DirectSS, 'Initialized', 1);&lt;br /&gt; ole2.set_property(DirectSS, 'Speed', Speed);&lt;br /&gt;&lt;br /&gt; -- Start speaking&lt;br /&gt; ArgList := ole2.create_arglist;&lt;br /&gt; ole2.add_arg(ArgList, Text); &lt;br /&gt; ole2.add_arg(ArgList, 0); &lt;br /&gt; ole2.invoke(DirectSS, 'Speak', ArgList);&lt;br /&gt; ole2.destroy_arglist(ArgList);&lt;br /&gt;&lt;br /&gt; -- Check speaking state&lt;br /&gt;  Speaking := ole2.get_num_property(DirectSS, 'IsSpeaking');&lt;br /&gt;&lt;br /&gt; ole2.release_obj(DirectSS);&lt;br /&gt;  return Speaking=1;&lt;br /&gt;&lt;br /&gt;EXCEPTION&lt;br /&gt; when OTHERS then&lt;br /&gt;  return FALSE;&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;Silahkan kirim email ke dadin_dj@yahoo.co.id untuk dapatkan source code nya.&lt;br /&gt;&lt;br /&gt;Mudah2an membantu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31436977-115370956762804859?l=oracleboy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleboy.blogspot.com/feeds/115370956762804859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31436977&amp;postID=115370956762804859&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115370956762804859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115370956762804859'/><link rel='alternate' type='text/html' href='http://oracleboy.blogspot.com/2006/07/membuat-program-absensi.html' title='Membuat Program Absensi'/><author><name>Oracle Boy</name><uri>http://www.blogger.com/profile/00666723192535938544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://photos1.blogger.com/blogger/881/3402/1600/dj.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31436977.post-115370911836946250</id><published>2006-07-23T19:41:00.000-07:00</published><updated>2006-07-23T19:47:03.210-07:00</updated><title type='text'>Menyimpan File Image di Oracle Forms</title><content type='html'>Bagi yang sedang belajar Oracle Forms seperti saya biasanya penasaran bagaimana caranya Oracle forms bisa menampilkan Image dan apakah image itu bisa di disimpan di dalam Database. Oracle forms bisa menampilkan Image dengan 2 cara yaitu :&lt;br /&gt;1. Dari Database item &lt;br /&gt;2. File System&lt;br /&gt;Gambar di bawah ini saya buat dengan cara pertama dimana image disimpan di database. Untuk cara ke 2 menyusul yach ngantuk berat nih… zzzz zzzzz zzzzzzz. &lt;br /&gt;&lt;br /&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/881/3402/320/image.0.jpg" border="0" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Procedure Load Image&lt;br /&gt;DECLARE &lt;br /&gt;   dir_name VARCHAR2(255);&lt;br /&gt;   v_filename VARCHAR2(255); &lt;br /&gt;BEGIN &lt;br /&gt; tool_env.GetVar('Photo',dir_name);&lt;br /&gt; dir_name := dir_name||'\Payroll\Photo';&lt;br /&gt; v_filename := Get_File_Name(dir_name,NULL,'BMP File (*.Bmp) | *.Bmp|');&lt;br /&gt; if v_filename IS NOT NULL THEN&lt;br /&gt;   READ_IMAGE_FILE(v_filename, 'BMP', 'Karyawan_mst.Photo');&lt;br /&gt; END IF;&lt;br /&gt; &lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;Silahkan kirim email ke dadin_dj@yahoo.co.id untuk dapatkan source code nya.&lt;br /&gt;&lt;br /&gt;Mudah2an membantu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31436977-115370911836946250?l=oracleboy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleboy.blogspot.com/feeds/115370911836946250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31436977&amp;postID=115370911836946250&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115370911836946250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115370911836946250'/><link rel='alternate' type='text/html' href='http://oracleboy.blogspot.com/2006/07/menyimpan-file-image-di-oracle-forms.html' title='Menyimpan File Image di Oracle Forms'/><author><name>Oracle Boy</name><uri>http://www.blogger.com/profile/00666723192535938544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://photos1.blogger.com/blogger/881/3402/1600/dj.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31436977.post-115346632023409443</id><published>2006-07-21T00:10:00.000-07:00</published><updated>2006-07-21T00:18:40.236-07:00</updated><title type='text'>Dynamic Where di Oracle Report</title><content type='html'>SELECT ALL EMP.EMPNO, EMP.ENAME, &lt;br /&gt;EMP.JOB, EMP.MGR, EMP.HIREDATE, EMP.SAL, EMP.COMM, EMP.DEPTNO&lt;br /&gt;FROM EMP &lt;br /&gt;&lt;br /&gt;BUAT USER PARAMETER&lt;br /&gt;P_CON  INITIAL VALUE 1=1&lt;br /&gt;P_CON1 INITIAL VALUE 1=1&lt;br /&gt;&lt;br /&gt;EDIT SELECT SEPERTI DIBAWAH &lt;br /&gt;SELECT ALL EMP.EMPNO, EMP.ENAME, &lt;br /&gt;EMP.JOB, EMP.MGR, EMP.HIREDATE, EMP.SAL, EMP.COMM, EMP.DEPTNO&lt;br /&gt;FROM EMP &lt;br /&gt;WHERE (&amp;P_CON OR EMP.EMPNO = :P_EMPNO) AND&lt;br /&gt;(&amp;P_CON1 OR EMP.ENAME = :P_ENAME)&lt;br /&gt;&lt;br /&gt;DI AFTER PARAMETER FORM &lt;br /&gt;&lt;br /&gt;function AfterPForm return boolean is&lt;br /&gt;begin&lt;br /&gt;IF :P_EMPNO is not null then&lt;br /&gt;:p_con := '1=0';&lt;br /&gt;END IF;&lt;br /&gt;IF :P_ENAME is not null then&lt;br /&gt;:p_con1 := '1=0';&lt;br /&gt;END IF;&lt;br /&gt;&lt;br /&gt;return (TRUE);&lt;br /&gt;end;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31436977-115346632023409443?l=oracleboy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleboy.blogspot.com/feeds/115346632023409443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31436977&amp;postID=115346632023409443&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115346632023409443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115346632023409443'/><link rel='alternate' type='text/html' href='http://oracleboy.blogspot.com/2006/07/dynamic-where-di-oracle-report.html' title='Dynamic Where di Oracle Report'/><author><name>Oracle Boy</name><uri>http://www.blogger.com/profile/00666723192535938544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://photos1.blogger.com/blogger/881/3402/1600/dj.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31436977.post-115346575421515358</id><published>2006-07-21T00:08:00.000-07:00</published><updated>2006-07-21T00:09:14.216-07:00</updated><title type='text'>Getting First day and Last day in Oracle</title><content type='html'>SELECT trunc(to_date('102005', 'MMYYYY'), 'MM') FIRST_DAY ,&lt;br /&gt;LAST_DAY(TO_DATE('102005','MMYYYY')) LAST_DAY&lt;br /&gt;FROM DUAL&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31436977-115346575421515358?l=oracleboy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleboy.blogspot.com/feeds/115346575421515358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31436977&amp;postID=115346575421515358&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115346575421515358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115346575421515358'/><link rel='alternate' type='text/html' href='http://oracleboy.blogspot.com/2006/07/getting-first-day-and-last-day-in.html' title='Getting First day and Last day in Oracle'/><author><name>Oracle Boy</name><uri>http://www.blogger.com/profile/00666723192535938544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://photos1.blogger.com/blogger/881/3402/1600/dj.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31436977.post-115346494433594184</id><published>2006-07-20T23:51:00.000-07:00</published><updated>2006-07-20T23:56:42.823-07:00</updated><title type='text'>My Projects</title><content type='html'>Main Menu&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/881/3402/1600/mainmenu.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/881/3402/320/mainmenu.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;POS&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/881/3402/1600/pos.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/881/3402/320/pos.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31436977-115346494433594184?l=oracleboy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleboy.blogspot.com/feeds/115346494433594184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31436977&amp;postID=115346494433594184&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115346494433594184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115346494433594184'/><link rel='alternate' type='text/html' href='http://oracleboy.blogspot.com/2006/07/my-projects.html' title='My Projects'/><author><name>Oracle Boy</name><uri>http://www.blogger.com/profile/00666723192535938544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://photos1.blogger.com/blogger/881/3402/1600/dj.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31436977.post-115346450337350352</id><published>2006-07-20T23:43:00.000-07:00</published><updated>2006-07-20T23:48:23.373-07:00</updated><title type='text'>Membuat Label Barcode</title><content type='html'>Membuat Label Barcode &lt;br /&gt;Untuk dapat membuat label barcode seperti di bawah ini  caranya gampang :&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/881/3402/1600/barcode.0.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/881/3402/320/barcode.0.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1. Install Free font code39&lt;br /&gt;2. Buat di Oracle Report&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Kalau  ada yang perlu source silahkan email saya dadin_tea@yahoo.co.id&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31436977-115346450337350352?l=oracleboy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleboy.blogspot.com/feeds/115346450337350352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31436977&amp;postID=115346450337350352&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115346450337350352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115346450337350352'/><link rel='alternate' type='text/html' href='http://oracleboy.blogspot.com/2006/07/membuat-label-barcode.html' title='Membuat Label Barcode'/><author><name>Oracle Boy</name><uri>http://www.blogger.com/profile/00666723192535938544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://photos1.blogger.com/blogger/881/3402/1600/dj.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31436977.post-115345540917292415</id><published>2006-07-20T21:15:00.000-07:00</published><updated>2006-07-20T21:16:49.183-07:00</updated><title type='text'>Print Report to Excel</title><content type='html'>Print Report to Excel&lt;br /&gt;Terkadang user ingin menampilkan laporan ke dalam bentuk excel. Ada beberapa cara untuk menampilkah data ke dalam format excel bisa pake TEXT_IO atau dengan memakai perintah HOST. Kalau saya lebih suka dengan memakai cara ke dua karena disamping data bisa ditampilkan ke dalam format excel juga bisa di tampilkan ke format aslinya yaitu report builder.&lt;br /&gt;&lt;br /&gt;– Procedure Print to Excell / Report Builder&lt;br /&gt;DECLARE&lt;br /&gt;PL_ID ParamList ;&lt;br /&gt;txtParam VARCHAR2(1000);&lt;br /&gt;v_report_date Varchar2(100) := null;&lt;br /&gt;temp_file varchar2(300) := null;&lt;br /&gt;BEGIN&lt;br /&gt;temp_file := ‘c:\WINNT\TEMP’;&lt;br /&gt;v_report_date := to_char(sysdate,’yymmddhh24miss’);&lt;br /&gt;&lt;br /&gt;PL_ID := Get_Parameter_List(’TMPDATA’);&lt;br /&gt;If NOT ID_NULL(PL_ID) Then&lt;br /&gt;Destroy_Parameter_List(PL_ID) ;&lt;br /&gt;End If;&lt;br /&gt;PL_ID := Create_Parameter_List(’TMPDATA’);&lt;br /&gt;&lt;br /&gt;Add_Parameter(PL_ID, ‘P_DR_TANGGAL’,TEXT_PARAMETER, :SLS_RPT.DR_TANGGAL);&lt;br /&gt;Add_Parameter(PL_ID, ‘P_SD_TANGGAL’,TEXT_PARAMETER, :SLS_RPT.SD_TANGGAL);&lt;br /&gt;Add_Parameter(PL_ID, ‘PARAMFORM’,TEXT_PARAMETER, ‘NO’);&lt;br /&gt;&lt;br /&gt;IF :SLS_RPT.EXCEL = ‘N’ THEN&lt;br /&gt;– Print to report builder&lt;br /&gt;Run_Product(REPORTS, v_report_name, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);&lt;br /&gt;ELSE&lt;br /&gt;– Print to Excel&lt;br /&gt;add_parameter(PL_ID,’desformat’, text_parameter,’html’);&lt;br /&gt;add_parameter(PL_ID,’desname’ ,text_parameter, temp_file ||v_report_date||’.html’);&lt;br /&gt;add_parameter(PL_ID,’destype’, text_parameter, ‘file’);&lt;br /&gt;&lt;br /&gt;run_product(reports, v_report_name, synchronous, runtime, filesystem, PL_ID, Null);&lt;br /&gt;host(’C:\Program Files\Microsoft Office\Office10\EXCEL.EXE ‘|| temp_file ||v_report_date||’.html’);&lt;br /&gt;END IF;&lt;br /&gt;&lt;br /&gt;END;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31436977-115345540917292415?l=oracleboy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleboy.blogspot.com/feeds/115345540917292415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31436977&amp;postID=115345540917292415&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115345540917292415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31436977/posts/default/115345540917292415'/><link rel='alternate' type='text/html' href='http://oracleboy.blogspot.com/2006/07/print-report-to-excel.html' title='Print Report to Excel'/><author><name>Oracle Boy</name><uri>http://www.blogger.com/profile/00666723192535938544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://photos1.blogger.com/blogger/881/3402/1600/dj.jpg'/></author><thr:total>1</thr:total></entry></feed>
