Feeds:
Posts
Comments

Posts Tagged ‘Oracle’

Use md5 in pl/sql…

Hi everyone; You can use dbms_obfuscation_toolkit for your Cryptography works. We show you, how can you use md5. And finally we return the results with casting to raw

create or replace
function encodemd5(v_str varchar2) return varchar2 is
 v_string varchar2(100);
 begin
 dbms_obfuscation_toolkit.md5(input_string => v_str,
 checksum_string => v_string);
 return(utl_raw.cast_to_raw(v_string));
end;
/

And finally we can see result with this;

select encodemd5('engin') from dual

That shows us encoded md5 string as result;

B238BAD91D48802AFBDA6A1E315EC5C7

Read Full Post »

Hello Everyone;

Now we are going to fill the JTable with sql query in java. We have to use swing for use of JTable, because Jtable, JScrollPane and JFrame use the Swing library. We use JFrame for create a window, JScrollPane for scroll the data and JTable for list data. We’ll fill JTable with AbstractTableModel and create two class. The 1st. class shows data in the window and the 2nd. class creates table model for fills the JTable. I selected oracle’s all_tables view for listed data. You can see the codes at below;

import java.sql.*;
import java.util.*;
import javax.swing.table.*;

public class FillTable extends AbstractTableModel{

 /**
 *
 */
 private static final long serialVersionUID = -912060609250881296L;
 private ResultSet rs;
 private int rowCount;
 private int columnCount;
 private ArrayList data=new ArrayList();

 public FillTable(ResultSet _rs) throws Exception
 {
 setRS(_rs);
 }

 public void setRS(ResultSet _rs)
 throws Exception
 {
 this.rs=_rs;
 ResultSetMetaData metaData=_rs.getMetaData();
 rowCount=0;
 columnCount=metaData.getColumnCount();
 while(_rs.next()){
 Object[] row=new Object[columnCount];
 for(int j=0;j<columnCount;j++){
 row[j]=_rs.getObject(j+1);
 }
 data.add(row);
 rowCount++;
 }
 }

 public int getColumnCount(){
 return columnCount;
 }

 public int getRowCount(){
 return rowCount;
 }

 public Object getValueAt(int rowIndex, int columnIndex){
 Object[] row=(Object[]) data.get(rowIndex);
 return row[columnIndex];
 }

 public String getColumnName(int columnIndex){
 try{
 ResultSetMetaData metaData=rs.getMetaData();
 return metaData.getColumnName(columnIndex+1);
 }catch(Exception e){
 e.printStackTrace();
 return null;
 }
 }
}

This class creates table model for fills JTable. Before we fill the JTable,  we have to fill the AbstractTableModel, so we talk about MVC in here. (Model View Controller) Let’s see how to  use this class.

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class MyTable {
 public static void main(String[] argv) throws Exception {
 JTable table = new JTable(myModel());

 JFrame f = new JFrame();
 f.setSize(300, 300);
 f.add(new JScrollPane(table));
 WindowListener wClose = new WindowAdapter() {
 public void windowClosing(WindowEvent e){
 System.exit(0);
 }
 };
 f.setVisible(true);

 }

 public static FillTable myModel() throws Exception{
 try {
 Class.forName ("oracle.jdbc.driver.OracleDriver");
 } catch (ClassNotFoundException e) {
 e.printStackTrace();
 }

 Connection con = DriverManager.getConnection
("jdbc:oracle:thin:@Host:port:sid", "user", "pass");

 Statement st = con.createStatement();
 ResultSet rs = st.executeQuery("select owner,table_name,tablespace_name from all_tables");
 FillTable model = new FillTable(rs);
 return model;
 }
}

In this class we are getting a results from sql query and we are creating an object with this results. And then we are creating JTable with this object. The another usage is setModel method.You can use this method as “table.setModel(myModel());”. When you are running the program, you are going to see the data in Jtable.

Read Full Post »

Hi;

In this article i explain how to connect oracle with jdbc.  Before we start, we must download oracle oci driver for oracle version. You can find these oci drivers from here.

I use Oracle driver for Oracle 10.x database. After you download the Oracle oci driver we can start . We add new Java Project in eclipse. In libraries from “add external jars”, you must choice oci driver jar file.(I select ojdbc14.jar for oracle 10.x.) We add a main class for getting output from sql.

import java.sql.*;

public class main {

 /**
 * @param args
 * @throws SQLException
 */
 public static void main(String[] args) throws SQLException {
 // TODO Auto-generated method stub
 try {
 Class.forName ("oracle.jdbc.driver.OracleDriver");
 } catch (ClassNotFoundException e) {
 e.printStackTrace();
 }

 Connection con = DriverManager.getConnection
 ("jdbc:oracle:thin:@ngeen-Laptop:1521:xe", "ngeen", "202020");
// @machine:port:SID,   user,  pass

 Statement st = con.createStatement();
 ResultSet rs = st.executeQuery("select * from all_tables");
 while (rs.next())
System.out.println (rs.getString(1));   // echo column 1
 st.close();
 }
}

If you look at the console you can see 1st column of all_tables view in database.

Read Full Post »

Fantazi sqller!!!

Başlık normalden değişik bir başlık fakat bu başlığın nedenini soracak olursanız birazdan anlatacağım sql sorguları normalde yazdığımız sqllerden bir miktar farklı şöyleki;

Farz edelim 1 den 20 ye kadar sayıların olduğu bir sql sorgusuna ihtiyacımız oluğunu düşünelim. Bunun için değişik yollar izleyebiliriz, bunların en basiti bir tablo sorgularken rownum kullanarak 20 veya daha fazla kayıt olan tabloda 1’den 20’ye kadar sayılıarı listeleyebiliriz.

Örnek :

select rownum sayi from all_tables where rownum<=20;

Sistemde bulunan all_tables view’i ile 1 den 20 ye kadar sayıları almak için bir sorgu çektik. sonuç olarak bize sorguyu getiriyor. Fakat performans olarak düşünürsek bize maliyeti 264 gibi bir rakam olacaktır. Bunun yerine aşağıdaki sorguyu çektiğimizde elde ettiğimiz cost 2’dir. Arada ciddi bir fark mevcuttur. Bununla birlikte birkaç tablo joinlediğimiz zaman cost (yani maliyet) daha da artacaktır.

select rownum sayi from dual connect by rownum<=20;

Şimdi de dbms_random paketinden bahsedelim. Bu paket içinde belirli fonksiyon ve prosedurleri içeren bir pakettir. Kullanımı ile ilgili birkaç örnek verelim;

select dbms_random.value(1,100) from dual;

Şeklinde bir kullanım bize 1 ile 100 arasında bir değer verecektir. fakat bu değer ondalıklı bir değer olacaktır. bu nedenle direk tam sayı alabilmek için;

select trunc(dbms_random.value(1,100)) from dual;

şeklinde kullanabilirsiniz.

Birbaşka kullanım şeklide sıralama yaparken order by kısmında kullanılabilmesidir. Bunun için şu şekilde bir örnek yapabiliriz, güncel bir örnek verecek olursak herhafta çekilen sayısal loto gayet güzel ve ilke örnekle bir bütün teşkil edecektir. gelin bir göz atalım;

select * from (
select rownum sayi from dual connect by rownum<=49
order by dbms_random.value)
where rownum<=6;

Burdaki 1’den 49’a kadar sıralı bir sayı dizisi getiriyoruz.Daha sonra order by dbms_random.value fonksiyonu ile bu sayıları rasgele bir şekilde sıralıyoruz ve içinden ilk 6 tanesini alıyoruz. bir örnek daha verecek olursak 4 * 4’lük rasgele sayılardan oluşan bir matris dizisi yaratmak istediğimizi düşünelim, bunun için;

SELECT TRUNC(dbms_random.value(1,100)) sayi1,
TRUNC(dbms_random.value(1,100)) sayi2,
TRUNC(dbms_random.value(1,100)) sayi3,
TRUNC(dbms_random.value(1,100)) sayi4
FROM dual connect by rownum<=4;

yukarıdaki sorgu size 1’den 100’e kadar rasgele sayılardan oluşan 4*4’lük bir matris dizisi verecektir.

Bana göre bu sql sorguları çok fazla kullanım alanları olmadığı için fantazi sql sorgularıdır, fakat öyle yerler gelir ki bu sqller sizin için hayat kurtarıcı olabilir, elinizde binlerce kayıt var ve deneme yapmak için rasgele değerler atmanız gerekiyor diyelim, veya maliyetlerle ilgili bir düzenleme yapacaksınız ve bir tabloyu milyonlarca kayıtla doldurmanız gerekiyor veya en extrem durum 1’den belli bir sayıya kadar sadece sayı ihtiyacınız oldu diyelim, örnekler daha da arttırılabilir.

Başka bir yazıda daha görüşmek üzere, hoşçakalın…

Read Full Post »

Pl/Sql Xml Ayrıştırma…

Farz edelim ki elinizde aşağıdaki şekilde bir xml dosyası var;

<?xml version=”1.0″?>
<xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”&gt;
<xsl:template match=”/”>
<html>
<body>
<h2>My CD Collection</h2>
<table border=”1″>
<tr>
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select=”catalog/cd”>
<tr>
<td><xsl:value-of select=”title”/></td>
<td><xsl:value-of select=”artist”/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

örnek xml üzerinde “My CD Collections” kısmını almak istediğimizi düşünürsek bunun için html->body->h2 şeklinde bir yol izlememiz gerekecektir. Fakat sadece bu yolu izlememiz yetmeyecek çünkü burda <xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”&gt; kısmında bir namespace verilmiş. Yani pl/sql’de bir sorgu hazırlarken bunu göz önünde bulundurmamız gerekecek. Gelin örneğe bir göz atalım;

with t as (
select xmltype(‘<?xml version=”1.0″?>
<xsl:stylesheet version=”1.0″
xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”&gt;
<xsl:template match=”/”>
<html>
<body>
<h2>My CD Collection</h2>
<table border=”1″>
<tr>
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select=”catalog/cd”>
<tr>
<td><xsl:value-of select=”title”/></td>
<td><xsl:value-of select=”artist”/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>’) x from dual)
select extractValue(x, ‘/xsl:stylesheet /xsl:template/html/body/h2/text()’,
‘xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”&#8216;) deger
from t
;

Bu sorgudaki ilk kısımda aslında bir xml tipi cast ediliyor, esas görev 2. sorguda extractValue komutu xml içindeki alanları ayırmamızı sağlayan bir komuttur.‘xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”&#8216; kısmında namespace’imizi extractValue komutuna tanımlıyoruz, ve ardından xml textimizde bulunan alanlarda sırası ile ilerliyoruz, xsl:stylesheet->xsl:template->html->body->h2->text() en son kısımdaki text() komutu XPATH’de içinde bulunduğumuz node’a ait text’i verecektir bize. Bu şekilde basitçe xml parse işlemi gerçekleştirebiliriz.

Sevgilerle…

Read Full Post »

Oracle ve Webservis …

İnternet üzerinde veri alışverişinde kullanılan webservislerden bahsetmek istiyorum. Gönderdiğimiz xml verileri sonucunda bize yine bir xml veri seti döner ve gelen xml parse edilerek dönen sonuçtaki istenen veri elde edilir. Oracle’da webservis kullanılabilmesi için utl_http paketi mevcut bu paketin kullanımı ile ilgili olarak http://wslite.strikeiron.com/simplegraphinglite01/SimpleGraphingLite.asmx sitesindeki webservisi örnek olarak kullanacağız. Bu linke tıkladığımız zaman bize SimpleGraphingLite.asmx servisinde bulunan metodlar listelenecektir. Bu yazıda buradaki GetBarGraph metodunun kullanımını göstereceğim. GetBarGraph linkine tıkladığımız zaman bize göndermemiz gereken xml verisi;

POST /simplegraphinglite01/SimpleGraphingLite.asmx HTTP/1.1
Host: wslite.strikeiron.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.wslite.strikeiron.com/GetBarGraph"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetBarGraph xmlns="http://www.wslite.strikeiron.com">
      <strGraphOrient>string</strGraphOrient>
      <strGraphTitle>string</strGraphTitle>
      <strXAxisLabel>string</strXAxisLabel>
      <strYAxisLabel>string</strYAxisLabel>
      <BarColor>RED or GREEN or BLUE</BarColor>
      <strXPoints>
        <string>string</string>
        <string>string</string>
      </strXPoints>
      <strYPoints>
        <string>string</string>
        <string>string</string>
      </strYPoints>
    </GetBarGraph>
  </soap:Body>
</soap:Envelope>

Ve gönderdiğimiz veri sonucunda bize dönecek xml verisi yani;

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetBarGraphResponse xmlns="http://www.wslite.strikeiron.com">
      <GetBarGraphResult>
        <ServiceResult>
          <GraphImage>base64Binary</GraphImage>
        </ServiceResult>
      </GetBarGraphResult>
    </GetBarGraphResponse>
  </soap:Body>
</soap:Envelope>
görülecektir.

Göndereceğimiz verinin sonucunda gelen xml’deki <GraphImage>base64Binary</GraphImage> kısmında bize base64 formatında sıkıştırılmış bir jpg dosyası gelecektir. (base64 aslında basit bir şifreleme yöntemidir.) Gelen base64 veriyi decode ettiğimiz zaman bize jpg dosyasını verecektir. Gelin Pl/Sql ile nasıl veri gönderip alınabilir buna bir gözatalım.
Basit bir script yazacak olursak;

declare
 sorgu utl_http.req;
 sonuc utl_http.resp;
 deger VARCHAR2(32000);
 vxml  VARCHAR2(32000);
 g_data VARCHAR2(32000);
BEGIN
g_data := '
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 <soap:Body>
 <GetBarGraph xmlns="http://www.wslite.strikeiron.com">
 <strGraphOrient>aaaaa</strGraphOrient>
 <strGraphTitle>bbbbb</strGraphTitle>
 <strXAxisLabel>cccccc</strXAxisLabel>
 <strYAxisLabel>ddddddd</strYAxisLabel>
 <BarColor>RED</BarColor>
 <strXPoints>
 <string>eeeeeee</string>
 <string>fffffffff</string>
 </strXPoints>
 <strYPoints>
 <string>ggggggg</string>
 <string>hhhhhhh</string>
 </strYPoints>
 </GetBarGraph>
 </soap:Body>
</soap:Envelope>
';
 BEGIN
 utl_http.set_transfer_timeout(300);
 sorgu := utl_http.begin_request('http://wslite.strikeiron.com/simplegraphinglite01/SimpleGraphingLite.asmx', 'POST');
 utl_http.set_header(sorgu, 'Content-Type', 'text/xml; charset=utf-8');
 utl_http.set_header(sorgu, 'User-Agent', 'Mozilla/4.0');
 utl_http.set_header(sorgu, 'content-length', LENGTH(g_data));
 utl_http.write_text(sorgu, g_data);
 sonuc := utl_http.get_response(sorgu);
 LOOP
 utl_http.read_line(sonuc, deger, true);
 vxml := vxml || deger;
 END LOOP;
 utl_http.end_response(sonuc);
 EXCEPTION
 WHEN utl_http.end_of_body THEN
 utl_http.end_response(sonuc);
 END;
 dbms_output.put_lıne(vxml);
END;
/

Şeklinde bir kullanım ile direk pl/sql’den webservisleri kullanabiliriz. Burda g_data değişkenine göndereceğimiz xml veriyi, begin_request komutu ile kullanacağımız servisin yolunu belirliyoruz. set_header komutu ile post edeceğimiz başlık bilgilerini ayarlıyacağız. get_response komutu ile sonucu alıp read_line komutu ile satır satır okuyarak ekrana sonucu yazdırıyoruz.
örnek sonuç;

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetBarGraphResponse xmlns="http://www.wslite.strikeiron.com">
<GetBarGraphResult>
<ServiceStatus>
<StatusNbr>311</StatusNbr>
<StatusDescription>Invalid number of data points.</StatusDescription>
</ServiceStatus>
<RemainingHits>97</RemainingHits>
<ServiceResult>
<Count>0</Count>
<GraphImage>
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
</GraphImage>
</ServiceResult>
</GetBarGraphResult>
</GetBarGraphResponse>
</soap:Body>
</soap:Envelope>

Kırmızı ile işaretlediğim kısım aslında şifrelenmiş bir jpeg dosyasıdır bu kırmızı işaretli GraphImage tagları arasındaki veriyi base64 ile decode ederek ve jpg formatına çevirip gösterimini sağlayabilirsiniz. Xml parse işlemi için Xdb foksiyonlarını kullanabilirsiniz. Daha sonraki yazılarımda bunu da anlatacağım.
İyi çalışmalar…

Read Full Post »

Linux sisteminiz üzerine oracle kurdunuz. İhtiyacınız olacak en önemli şey sql, function, procedure, vs.. yazarken size yardımcı olacak bir pl/sql editörü olacaktır. Bu işi sizin için üstlenecek çeşitli araçlar mevcut fakat bir kısmı ücretli, bir kısmı ise gerçekten devamlı hata veren ve görsel fakat görsellikten bir haber olan araçlar. Bunlardan bazı seçenekler;

Direk indirme işlemi yaptıktan sonra oracle ayarlarını yaparak kolayca kullanıma başlayabileceğiniz bir program. Program trial versiyon bir süre sonra satın almanız gerekiyor.

Kurulumu bazı sistemlerde sorun çıkartabiliyor. Mesela benim sistemimde. 🙂 Program ücretli fakat sadece ticari olarak kullanımlarda. Şu an sitesinde şu şekilde bir açıklama var. “For Evaluation Version,when the software starts, it asks you a serial number. Please click Trial. Other than this, that is not difference between License version and Evaluation version.” Yani;

Deneme sürümü için, program başladığı zaman sifre soracaktır. Trial butonuna basınız. Bununla ilgili olarak, lisanslı versiyon ve deneme sürümü arasında bir fark yoktur. Şeklinde bir ibare mevcut ben çalıştıramadım, daha doğrusu çok fazla uğraşmadım.

Oracle ile program geliştiricilerin çok fazla kullanıkları araçların başında toad ve pl/sql developer geliyor. Tora programı bazı kısımlarda toad yazılımını hazırlayan Quest Software firmasının bazı yerlerde desteğini almış ve çapraz platformlarda çalışabilme özelliği olmasına karşın sitesinde “For commercially supported database tools for Windows please see Toad for Oracle by Quest Software – You can expect more.” yazıyor. Yani;

“Windows üzerinde desteklenen ticari veritabanı aracı için Quest software tarafından yazılan oracle için toad’a bakınız. yazıyor.” Program ücretsiz üstelik açık kaynak bir yazılım. Eğer Ubuntu kullanıyorsanız Synaptic paket yöneticisinde aratarak 1.3… versiyonunu bulabilirsiniz fakat bu sürüm postgresql destekliyor. Sitesinde 2.0… oracle için sürümünü için deb paketini indirerek kurmanız veya sourceları indirdikten sonra sisteminize kurmanız gerekmekte.

Son olarak asıl benim kullandığım ve tavsiye ettiğim program ise, Oracle’a ait bedava, görsel olarak baya güzel yapılmış, bütün platformlarda rahatlıkla kullanabileceğiniz sqldeveloper programı. Programın kurulumu için herhangi bir deb paketi bulunmamakta. Program için, (Ubuntu, Debian, vs.. tarzı deb paketlerini kullanan sistemler için…) bazı ufak ayarlar gerekiyor. Eğer rpm paketi destekleyen bir linux sürümü kullanıyorsanız, rpm paketleri mevcut. Ben ubuntu üzerinde kullanıyorum ve gayet güzel ve kullanışlı bulduğumu söylemeliyim. Sisteminizde sqldeveloper çalıştırabilmek için jdk(Java Development Kit) ve jre(Java Run Time Environment) yüklü olması gerekiyor. Ubuntu tarzı deb paketi vs.. sistemler için Oracle SQL Developer for other platforms download seçeneği seçilmeli. 73 mb civarı bir dosya indireceksiniz. İndirdiğiniz zip dosyasını sisteminizde açtıktan sonra /home/ngeen/Masaüstü/sqldeveloper/sqldeveloper/bin ornek dizinde olduğu gibi bin klasorunun altında bulunan sqldeveloper.conf dosyasını, kate tarzı bir kelime işlemci program ile açarak SetJavaHome /usr/lib/jvm/java-6-sun-1.6.0.13 satırını eklemeniz gerekiyor. Sonrasında eğer çalıştırma yetkiniz var ise örnek dizin üstünden gidiyorum /home/ngeen/Masaüstü/sqldeveloper/ dizininde sqldeveloper.sh dosyası çalıştırıldıktan sonra gerekli ayarları yapınca aşağıdaki başlangıç ekranı ile karşılaşacaksınız.

sqldeveloper1

Sonrasında gelen ekranda sql,function,procedure, vs.. çalışmalarınıza başlayabilirsiniz…

sqldeveloper2

İyi Çalışmalar…


Read Full Post »

Older Posts »