12 Temmuz 2018 Perşembe

ARRAY Sınıfı

Giriş
Şu satırı dahil ederiz.
import oracle.sql.ARRAY;
constructor
Şöyle yaparız.
Class.forName("oracle.jdbc.OracleDriver");

Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl",
  "test_user","password");

Object[] objs = new Object[]{
  con.createStruct( "NESTED_ROW_TYPE", new Object[]{ "Q", 99 } ),
  con.createStruct( "NESTED_ROW_TYPE", new Object[]{ "R", 999 } )
};

ARRAY a = ((OracleConnection) con).createARRAY("NESTED_TBL_TYPE", objs);

11 Temmuz 2018 Çarşamba

Oracle Sütun Tipleri

Date
Oracle kendine mahsus bir formatta saklar. Type 12'dir. Açıklaması şöyle.
Type 12 - Dates stored in table
Type 13 - Date returned by internal date functions like SYSDATE/CURRENT_DATE, also when converting a string literal into date using TO_DATE or ANSI Date literal DATE 'YYYY-MM-DD'
Number
Şöyle yaparız. Toplamda 26 rakam yazılabilir. 6 tanesi küsürat rakam olabilir.
NUMBER(26,6)
Long Row
Hexadecimal string saklayabilir.

TIMESTAMP WITH TIMEZONE
Örnek ver

9 Temmuz 2018 Pazartesi

CREATE SEQUENCE

Giriş
Her session test_seq.nextval çağrısı yapınca n tane değer çeker.

Örnek
Şöyle yaparız.
CREATE SEQUENCE test_seq
      INCREMENT BY 1
      START WITH 1
      NOMAXVALUE
      NOCYCLE
      CACHE 10;
CYCLE Alanı
Örnek
Şöyle yaparız. Sayı MINVALUE ve MAXVALUE arasında dolaşır ve başa döner.
CREATE SEQUENCE test_seq ALO
      MINVALUE 1
      INCREMENT BY 1
      START WITH 1
      MAXVALUE 2147483645
      CYCLE;
CURVAL Alanı
Açıklaması şöyle.
If any of these locations contains references to both CURRVAL and NEXTVAL, then Oracle increments the sequence and returns the same value for both NEXTVAL.
Elimizde şöyle bir kod olsun
INSERT INTO questions(id, value) VALUES(my_seq.NEXTVAL, p_question); //1

INSERT INTO DEPENDENCIES(parent_question_id, child_question_id) //2
VALUES (my_seq.CURRVAL, my_seq.NEXTVAL);
Çıktı olarak şunu alırız
my_seq.NEXTVAL = 2; //1
my_seq.CURRVAL = 3; //2
my_seq.NEXTVAL = 3;
NEXTVAL Alanı
Şöyle yaparız.
INSERT INTO questions(id, value) VALUES(my_seq.NEXTVAL, p_question);

8 Temmuz 2018 Pazar

LTRIM

Giriş
Açıklaması şöyle. İkinci parametrede belirtilen karakterleri siler.
LTRIM removes from the left end of char all of the characters contained in set.
Örnek
Şöyle yaparız.
select ltrim('PREPROCESSINGLIST_AOD', 'PREPROCESSINGLIST_') as node_code from dual;

29 Mayıs 2018 Salı

Oracle JDBC Thin Driver - OracleStatement Sınıfı

Giriş
Şu satırı dahil ederiz
import oracle.jdbc.OracleStatement;
setDatabaseChangeRegistration metodu
Şöyle yaparız.
OracleConnection conn = ...;

DatabaseChangeRegistration dcr = ...;

Statement stmt = conn.createStatement();
((OracleStatement) stmt).setDatabaseChangeRegistration(dcr);

Oracle JDBC Thin Driver - OracleConnection Sınıfı

Giriş
Şu satırı dahil ederiz.
import oracle.jdbc.OracleConnection;
constructor
Örnek
Şöyle yaparız.
Class.forName("oracle.jdbc.OracleDriver");

Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl",
  "test_user","password");
Örnek
JDBC Connection arayüzünün unwrap metodunu kullanarak şöyle yaparız.
OracleConnection oraCon = connection.unwrap(oracle.jdbc.OracleConection.class);
close metodu
Şöyle yaparız.
con.close();
createArray metodu
Şöyle yaparız.
Object[] objs = new Object[]{
  con.createStruct( "NESTED_ROW_TYPE", new Object[]{ "Q", 99 } ),
  con.createStruct( "NESTED_ROW_TYPE", new Object[]{ "R", 999 } )
};

ARRAY a = ((OracleConnection) con).createARRAY("NESTED_TBL_TYPE", objs);
createStatement metodu
OracleStatement nesnesi döner. Şöyle yaparız.
Statement stmt = conn.createStatement();
prepareCall metodu
Şöyle yaparız.
PreparedStatement st = con.prepareCall( "INSERT INTO container_tbl ( a, b, nested_tbl )
  VALUES ( ?, ?, ? )" );
registerDatabaseChangeNotification metodu
Şöyle yaparız.
OracleConnection conn = ...;
Properties prop = new Properties();
prop.setProperty(OracleConnection.DCN_NOTIFY_ROWIDS,"true");
prop.setProperty(OracleConnection.DCN_QUERY_CHANGE_NOTIFICATION,"true");
DatabaseChangeRegistration dcr = conn.registerDatabaseChangeNotification(prop);