sql komutu çalıştırmayla ilgili bir sorun

Oracle veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 12:14

sql komutu çalıştırmayla ilgili bir sorun

Mesaj gönderen mucar » 20 Oca 2007 01:17

oracle 10g database express edition kullanıyorum. sorum aslında çok basit ama birkaç şey denedim olmadı, veritabanını, sequenceleri ve trigerları oluşturmaya yarayan sayfalarca bir sql cümlem var. Database Home Page üzerinden SQL Command-> Enter Command bölümüne girip örneğin şu cümleyi yapıştırıyorum;

Kod: Tümünü seç

CREATE SEQUENCE SEQ_GRUP
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;

CREATE SEQUENCE SEQ_KULLANICI
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;

CREATE SEQUENCE SEQ_KULLANICI_GRUP
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;


create table GRUP  (
   GRUP_ID              NUMBER(10) not null enable,
   GRUP_ADI             VARCHAR2(20),
   GRUP_TANIMI          VARCHAR2(70),
   GRUP_ACIKLAMASI      VARCHAR2(70),
   constraint PK_GRUP primary key (GRUP_ID) enable
)

/


CREATE OR REPLACE TRIGGER  "BI_GRUP" 
  before insert on "GRUP"               
  for each row  
begin   
    select "SEQ_GRUP".nextval into :NEW.GRUP_ID from dual; 
end; 


create table KULLANICI  (
   KULLANICI_ID         NUMBER(10) not null enable,
   KULLANICI_ADI        VARCHAR2(20),
   KULLANICI_SOYADI     VARCHAR2(20),
   KULLANICI_NICK       VARCHAR2(8),
   KULLANICI_SIFRE      VARCHAR2(8),
   KULLANICI_STATUSU    VARCHAR2(20),
   KULLANICI_BIRIMI     VARCHAR2(20),
   KULLANICI_CEP        VARCHAR2(15),
   KULLANICI_EMAIL      VARCHAR2(50),
   KULLANICI_ACIKLAMA   VARCHAR2(80),
   constraint PK_KULLANICI primary key (KULLANICI_ID) enable
)

/


CREATE OR REPLACE TRIGGER  "BI_KULLANICI" 
  before insert on "KULLANICI"               
  for each row  
begin   
    select "SEQ_KULLANICI".nextval into :NEW.KULLANICI_ID from dual; 
end;

create table KULLANICI_GRUP  (
   KULLANICI_GRUP_ID    NUMBER(10) not null enable,
   KULLANICI_ID         NUMBER(10),
   GRUP_ID              NUMBER(10),
   constraint PK_KULLANICI_GRUP primary key (KULLANICI_GRUP_ID) enable,
   constraint FK_KULLANIC_KULLANıCı_KULLANIC foreign key (KULLANICI_ID)
         references KULLANICI (KULLANICI_ID) enable,
   constraint FK_KULLANIC_GRUP_FG_GRUP foreign key (GRUP_ID)
         references GRUP (GRUP_ID) enable
)

/


CREATE OR REPLACE TRIGGER  "BI_KULLANICI_GRUP" 
  before insert on "KULLANICI_GRUP"               
  for each row  
begin   
    select "SEQ_KULLANICI_GRUP".nextval into :NEW.KULLANICI_GRUP_ID from dual; 
end;  
fakat bir kaç değişik şey denememe rağmen çalıştıramıyorum. Noktalama işaretleriyle ilgili hata yapıyorum galiba. Böyle karışık işlemleri yapan bir SQL kodunu nasıl çalıştırabilirim. Teşekkürler
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"

Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can » 20 Oca 2007 01:37

Adım adım yaparsan sorunları daha rahat tespit edersin ve çözmen daha kolay olur.

Yani tamamını değil de komutları teker teker çalıştır.

İyi çalışmalar.

Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 12:14

Mesaj gönderen mucar » 20 Oca 2007 02:23

hocam adım adım yapınca oluyor zaten, fakat amacım hepsini birlikte çalıştırmak. yoksa çok uğraştırıyor. oracle ilk defa kullandığım için syntax'ını tam bilmiyorum.
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"

Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can » 20 Oca 2007 03:04

İlk hatayı aldığın SQL cümlesini ve hata mesajını belirtebilir misin?

Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 12:14

Mesaj gönderen mucar » 20 Oca 2007 04:34

hocam şöyle ki;

Kod: Tümünü seç

CREATE SEQUENCE SEQ_GRUP
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20; 

Kod: Tümünü seç

CREATE SEQUENCE SEQ_KULLANICI
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20; 

Kod: Tümünü seç

CREATE SEQUENCE SEQ_KULLANICI_GRUP
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20; 

Kod: Tümünü seç

create table GRUP  (
   GRUP_ID              NUMBER(10) not null enable,
   GRUP_ADI             VARCHAR2(20),
   GRUP_TANIMI          VARCHAR2(70),
   GRUP_ACIKLAMASI      VARCHAR2(70),
   constraint PK_GRUP primary key (GRUP_ID) enable
) 

Kod: Tümünü seç

CREATE OR REPLACE TRIGGER  "BI_GRUP"
  before insert on "GRUP"               
  for each row 
begin   
    select "SEQ_GRUP".nextval into :NEW.GRUP_ID from dual;
end; 

Kod: Tümünü seç

create table KULLANICI  (
   KULLANICI_ID         NUMBER(10) not null enable,
   KULLANICI_ADI        VARCHAR2(20),
   KULLANICI_SOYADI     VARCHAR2(20),
   KULLANICI_NICK       VARCHAR2(8),
   KULLANICI_SIFRE      VARCHAR2(8),
   KULLANICI_STATUSU    VARCHAR2(20),
   KULLANICI_BIRIMI     VARCHAR2(20),
   KULLANICI_CEP        VARCHAR2(15),
   KULLANICI_EMAIL      VARCHAR2(50),
   KULLANICI_ACIKLAMA   VARCHAR2(80),
   constraint PK_KULLANICI primary key (KULLANICI_ID) enable
) 

Kod: Tümünü seç

CREATE OR REPLACE TRIGGER  "BI_KULLANICI"
  before insert on "KULLANICI"               
  for each row 
begin   
    select "SEQ_KULLANICI".nextval into :NEW.KULLANICI_ID from dual;
end; 

Kod: Tümünü seç

create table KULLANICI_GRUP  (
   KULLANICI_GRUP_ID    NUMBER(10) not null enable,
   KULLANICI_ID         NUMBER(10),
   GRUP_ID              NUMBER(10),
   constraint PK_KULLANICI_GRUP primary key (KULLANICI_GRUP_ID) enable,
   constraint FK_KULLANIC_KULLANıCı_KULLANIC foreign key (KULLANICI_ID)
         references KULLANICI (KULLANICI_ID) enable,
   constraint FK_KULLANIC_GRUP_FG_GRUP foreign key (GRUP_ID)
         references GRUP (GRUP_ID) enable
) 

Kod: Tümünü seç

CREATE OR REPLACE TRIGGER  "BI_KULLANICI_GRUP"
  before insert on "KULLANICI_GRUP"               
  for each row 
begin   
    select "SEQ_KULLANICI_GRUP".nextval into :NEW.KULLANICI_GRUP_ID from dual;
end; 
şeklinde ayrı ayrı çalıştırıldığımda sorun yok ama hepsini birlikte veya ikisini birlikte çalıştırmaya kalktığımda;
ORA-00911: invalid character
hatasını alıyorum. Satır numarası zaten belli değil.
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"

Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can » 20 Oca 2007 04:38

Hepsini çalıştırırken aralarına sadece boş bir satır ilave edip deneyin. Hepsinin sonuna da ; işaretini koyun.

İlk mesajınızda / işaretine takılmış olmalı.

Hatta emin olmak için ikişerli deneyin.

Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 12:14

Mesaj gönderen mucar » 20 Oca 2007 11:34

hocam hiç farketmiyor, "/" işaretini kaldırsam da ";" koysam da, arada bir satır boşluk bıraksam da, ikişerli çalıştırsam da olmuyor :roll:
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"

Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can » 21 Oca 2007 12:40

Tabi baştan hata yaptık.

Kullandığın programda zaten sadece bir SQL girebiliyorsun.

Ya Oracle Enterprise Manager Console'u kullanacaksın ki Express Edition'da yok. Veya basit bir kod yazarak örneğin Delphi tarafında yapacaksın bu işi.

Veya yaptığın gibi teker teker yapacaksın.

İyi çalışmalar.

Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 12:48
Konum: İstanbul

Mesaj gönderen rsimsek » 21 Oca 2007 12:07

/ olan yerlere;

Kod: Tümünü seç

commit;
koyup deneyin.. Mantık şu tabloyu oluşturup peşinden trigger oluşturulamıyordu sanırım. O yüzden oluşturulan tablo önce veri tabanına işlenmeli ki trigger veya bağlı diğer kodlar çalışabilsin :idea: 5-6 sene önce oracle 7.3 ile çalışma tecrübelerim vardı ara açılınca unuttum gitti :roll:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!

Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 12:14

Mesaj gönderen mucar » 22 Oca 2007 12:22

Recep abi o şekilde de olmadı maalesef. Galiba Hakan Can'ın dediğinden kaynaklanıyor sorun. Yine de sağolun.
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"

Mennan
Üye
Mesajlar: 144
Kayıt: 22 Haz 2004 02:22
Konum: Istanbul
İletişim:

Mesaj gönderen Mennan » 22 Oca 2007 10:06

Kod: Tümünü seç

--cleaning
/*drop sequence SEQ_GRUP;
drop sequence SEQ_KULLANICI;
drop sequence SEQ_KULLANICI_GRUP;

drop table KULLANICI_GRUP;
drop table GRUP;
drop table KULLANICI;*/
-------
CREATE SEQUENCE SEQ_GRUP 
MINVALUE 1 
MAXVALUE 999999999999999999999999999 
START WITH 1 
INCREMENT BY 1 
CACHE 20; 

CREATE SEQUENCE SEQ_KULLANICI 
MINVALUE 1 
MAXVALUE 999999999999999999999999999 
START WITH 1 
INCREMENT BY 1 
CACHE 20; 

CREATE SEQUENCE SEQ_KULLANICI_GRUP 
MINVALUE 1 
MAXVALUE 999999999999999999999999999 
START WITH 1 
INCREMENT BY 1 
CACHE 20; 


create table GRUP  ( 
   GRUP_ID              NUMBER(10) not null enable, 
   GRUP_ADI             VARCHAR2(20), 
   GRUP_TANIMI          VARCHAR2(70), 
   GRUP_ACIKLAMASI      VARCHAR2(70), 
   constraint PK_GRUP primary key (GRUP_ID) enable 
);
/

CREATE OR REPLACE TRIGGER  "BI_GRUP" 
  before insert on "GRUP"                
  for each row  
begin    
    select "SEQ_GRUP".nextval into :NEW.GRUP_ID from dual; 
end;
/


create table KULLANICI  ( 
   KULLANICI_ID         NUMBER(10) not null enable, 
   KULLANICI_ADI        VARCHAR2(20), 
   KULLANICI_SOYADI     VARCHAR2(20), 
   KULLANICI_NICK       VARCHAR2(8), 
   KULLANICI_SIFRE      VARCHAR2(8), 
   KULLANICI_STATUSU    VARCHAR2(20), 
   KULLANICI_BIRIMI     VARCHAR2(20), 
   KULLANICI_CEP        VARCHAR2(15), 
   KULLANICI_EMAIL      VARCHAR2(50), 
   KULLANICI_ACIKLAMA   VARCHAR2(80), 
   constraint PK_KULLANICI primary key (KULLANICI_ID) enable 
);
/


CREATE OR REPLACE TRIGGER  "BI_KULLANICI" 
  before insert on KULLANICI                
  for each row  
begin    
    select "SEQ_KULLANICI".nextval into :NEW.KULLANICI_ID from dual; 
end; 
/

create table KULLANICI_GRUP  ( 
   KULLANICI_GRUP_ID    NUMBER(10) not null enable, 
   KULLANICI_ID         NUMBER(10), 
   GRUP_ID              NUMBER(10), 
   constraint PK_KULLANICI_GRUP primary key (KULLANICI_GRUP_ID) enable, 
   constraint FK_KULLANIC_KULLANıCı_KULLANIC foreign key (KULLANICI_ID) 
         references KULLANICI (KULLANICI_ID) enable, 
   constraint FK_KULLANIC_GRUP_FG_GRUP foreign key (GRUP_ID) 
         references GRUP (GRUP_ID) enable 
);
/ 


CREATE OR REPLACE TRIGGER  "BI_KULLANICI_GRUP" 
  before insert on "KULLANICI_GRUP"                
  for each row  
begin    
    select "SEQ_KULLANICI_GRUP".nextval into :NEW.KULLANICI_GRUP_ID from dual; 
end; 
/

Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 12:14

Mesaj gönderen mucar » 22 Oca 2007 06:08

Olmuyor Mennan hocam. Sanırım Hakan Can'ın dediği gibi Express Edition'dan kaynaklanıyor.

Geçici olarak aşağıdaki gibi çözdüm;
viewtopic.php?p=107399#107399
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"

Mennan
Üye
Mesajlar: 144
Kayıt: 22 Haz 2004 02:22
Konum: Istanbul
İletişim:

Mesaj gönderen Mennan » 23 Oca 2007 11:47

KULLANICI_GRUP tablonuz içindeki "FK_KULLANIC_KULLANıCı_KULLANIC " ibaresini "FK_KULLANIC_KULLANICI_KULLANIC " ile değiştirin. "Home>SQL>SQL Scripts>Script Editor" Kısmından scriptinizi yükleyip çalıştırın.

Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 12:14

Mesaj gönderen mucar » 24 Oca 2007 03:42

sorun firefoxdan kaynaklanıyormuş. dediğiniz yere defalarca girip kurcalamıştım, fakat script girilecek yer pasif durumdaydı ve herhangi bir yazı girilememekteydi. Internet Explorer'la deneyince bahsettiğiniz yere script yazabildim ve de çalıştı. Teşekkürler
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"

Cevapla