31 Mayıs 2013 Cuma

ORA-28547 Hata Çözümü

Hata nedeni
------------------------------------
Windows 7 veya Xp işletim sistemlerinde oracle veritabanına bağlanırken yaşanan sorunlardan biridir.
Windows varsayılan kullanıcılarında Oracle Hizmetleri başarısız oluyor.

Çözüm 1:
Oracle servisini durdurduktan sonra
sqlnet.ora dosyasındaki SQLNET.AUTHENTICATION_SERVICES (NTS) tanımını
SQLNET.AUTHENTICATION_SERVICES (NONE). şekinde değiştirin.

Sonra Oracle servisini tekrar başlatın.

Oracle Servisine aşağıdaki gibi ulaşabilirsiniz.
- Bilgisayarınızda Başlat butonundan Çalıştır ekranını açıyorsunuz.(Kısayol Klavyede Başlat Düğmesi + R)
- Çalıştır ekranında "services.msc" yazıyorsunuz. Açılan pencerede OracleServiceORCL servisini bulup sağ tıkladıktan sonra "Durdur" diyorsunuz.
Not : OracleServiceORCL servisi sondaki ORCL değişkeni değişebilir.Bilgisayarızda Oracle Yüklenirken tanımladığınız servis ismidir.Oracle Express Edition kurarsanız servisi ismi OracleServiceXE olacaktır.


Çözüm 2:
Oracle Servisini başlatan kullanıcının değişmesi gerekir.Genellikle bilgisayarınız açılırken giriş yaptığınız Kullanıcı yetkilidir.Kullanıcı Hesaplarında başka bir kullanıcı tanımı yapınız. Örneğin X kullanıcısı.

Bunu yapmak için
1. Çözüm 1'de tanımladığımız şekilde oracle servisine ulaşıyorsunuz. (OracleServiceORCL)
2.Servise sağ tıkladıktan sonra Oturum Açma sekmesini seçiyorsunuz.
Ekran "Aşağıdaki Hesap" seçeneğini seçiyorsunuz. Tanımladığınız X kullanıcısı seçip ona ait parolayı giriniz
ve tamam deyiniz.
3.Veritabanını durdurun. Aşağıdaki komut satırı gibi

C:\Users\Administrator> sqlplus / as sysdba
SQL> SHUTDOWN NORMAL
SQL> STARTUP
Sonra Oracle servisi durdurup tekrar başlatabiliriz.

29 Mayıs 2013 Çarşamba

ROWNUM kullanarak ORDER BY ile bir tablo sütunu güncelleme

update table outer
set outer.sira_id = (
    select sira from (
           select rowid as id, row_number() over (order by TARIH) sira  
           from table 
    ) inner 
    where inner.id = outer.rowid);

27 Mayıs 2013 Pazartesi

web.xml cluster ayarı

Web uygulamasını Proxy uygulama olarak kullanmak için , kendi web uygulamanızda web.xml içerisinde aşağıdaki gibi tanım yapabilirsiniz.
sunucu1:port =Yönlendirilecek 1.sunucu
sunucu2:port =Yönlendirilecek 2.sunucu



<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/j2ee" >
<servlet>
<servlet-name>HttpClusterServlet</servlet-name>
<servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class>
<init-param>
<param-name>WebLogicCluster</param-name>
<param-value>sunucu1:port|sunucu2:port</param-value>
</init-param>

<init-param>
<param-name>verbose</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>DebugConfigInfo</param-name>
<param-value>ON</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>/*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>/.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>/.html</url-pattern>
</servlet-mapping>
</web-app>

26 Mayıs 2013 Pazar

ORA-02289 Hata Çözümü

ORA-02289 ---> Sequence bulunmadı hatasıdır.
Veya sequence ' i bulunduran şemada diğer
şemalara erişim hakkı verilmelidir.

Çözüm 1 : CREATE SEQUENCE testSequence
START WITH 1
MAXVALUE 999999999999999999999999999
MINVALUE 1
NOCYCLE
NOCACHE
NOORDER;

Çözüm 2 : GRANT SELECT ON semaismi.testSequence to baskasema;

1 Mayıs 2013 Çarşamba

Veri içeren tabloda kolon veri türünü değiştirmek

Aşağıdaki gibi bir tablo tanımı olsun.

create table test1
(
no number,
ad varchar2(20),
sira varchar2(100)
);


İçindeki değerler

no ad sira
1 deger1 3
2 deger2 1
3 deger3 2

Tablonun içinde yukarıdaki gibi değerler mevcut ise

ve 'sira' kolonunun veri türünü 'number'

olarak değiştirilirse

"ORA-01439: column to be modified must be empty to change datatype"

gibi hata alır.

Aşağıdaki sql sırası çalıştırılırsa sorun çözülür.


ALTER TABLE test1 ADD (sira2 NUMBER);

UPDATE test1 set sira2=sira;

ALTER TABLE test1 DROP COLUMN sira;

ALTER TABLE test1 RENAME COLUMN sira2 TO sira;

17 Nisan 2013 Çarşamba

Adobe Flex Pdf çıktısı oluşturmak

Aşağıdaki linklerden kütüphaneyi indiriyorsunuz.

Link1=  http://dfiles.eu/files/78m582ipy

veya

Link2= http://www.2shared.com/file/xuj8yEVL/org.html

Kütüphaneleri indirdikten sonra Flex projenizin  src dosyasına altına kopyalayın.

Aşağıdaki kod parçasını Script olarak çalıştırabilirsiniz.


protected function ozgecmisCikti(event:MouseEvent):void
{
var myPDFEncoder:PDF = new PDF (Orientation.LANDSCAPE, Unit.MM);
myPDFEncoder.setDisplayMode(Display.FULL_PAGE);

myPDFEncoder.addPage();
myPDFEncoder.addImage(personelBilgiPanel,null,0,0,myPDFEncoder.getMargins().w  idth,myPDFEncoder.getMargins().height);
myPDFEncoder.addPage();
myPDFEncoder.addImage(PANELID,null,0,0,myPDFEncoder.getMargins().width,myPDFEncoder.getMargins().height);

var bytes:ByteArray = myPDFEncoder.save(Method.LOCAL);

var fx:FileReference = new FileReference();  
fx.save(bytes,"test.pdf");
}

Yukarıda PANELID yazan yere herhangi bir panelinize ait idsini yazdığınızda panelin tamamı pdf'e aktrılır.

Panel herhangi bir flex tag'i olabilir. Örneğin : <s:Panel/> , <s:NavigatorContent/>


Metodu herhangi bir butona veya başka birşeye click event olarak eklerseniz "test.pdf" çıktısını üretmiş olacaktır.