[ strain @ 26.03.2010. 18:49 ] @
Radim jednu jednostavnu bazu kao projekat na faxu. I kada hocu da popunim bazu inicijalnim podacima Oracle mi javlja gresku "table or view does not exist".

Znaci na jednostavan upit kao sto je ovaj:

Code:
INSERT INTO DOKTOR ( DOK_ID )
VALUES ( 1 )
/


Oracle mi javlja gresku, a kada pogledam u SQL Developer-u lepo se vide kreirane sve tabele.

Zna li neko zbog cega se ovo dogadja i sta da radim?
[ GORSHTAK @ 27.03.2010. 08:58 ] @
Proveri u privilegijama šeme možeš li da insertuješ.
[ strain @ 27.03.2010. 16:40 ] @
Ja sam napravio novog korisnika koji se zove test123 i odobrio mu sve privilegije, cak sam sa njim i napravio bazu. Odnosno iz Power Designer-a sam napravio SQL, ulogovao se kao korisnik test123 i napravio sve tabele. I sada kada hocu da dodam podatke u tabele kaze da tabela ne postoji, tako mi i na SELECT komandu javlja istu gresku.

Znaci dozvolio mi je da napravim tabelu ali mi ne dozvoljava da u nju nesto upisem ili iscitam.
[ djoka_l @ 27.03.2010. 17:52 ] @
Ma nema veze sa privilegijama. Taj korisnik ne vidi tabelu, a ti si napravio nekakvu grešku.

Probaj lepo da uđeš u SQL*Plus kao taj tesni korisnik i uradi:

crearte table test123 (dummy number);
insert into test123 (1);
select * from test123;

pa ćeš videti kako sve radi.

A ono što si mislio da si kreirao - kreiraj ponovo...
[ strain @ 28.03.2010. 17:47 ] @
Najzad sam provalio u cemu je problem i sada mi bas nista nije jasno.

Kada kucam

select * from doktor - nece da radi
select * from "doktor" - radi

dok na drugoj bazi koju sam napravio uporedo sa ovom i koja nema nikakve veze sa ovom je obrnuto kod nje

select * from audio - radi
select * from "audio" - nece


Moram da napomenem da sam u oba slucaja koristio identicne alate i za izradu baze. Znaci koristio sam PowerDesigner za pravljenje konceptualnog i fizickog modela kao i generisanje SQL skripte. Baza je ORACLE Version 10gR2. Zna li neko zbog cega se ovo dogadja. I da kada kucam u SQL Developer-u on mi stvarno sam nudi kod prve baze tabelu sa "" a kod druge bez "".

U cemu je ovde fora sta se to desava?
[ doomed @ 29.03.2010. 09:36 ] @
e pa to ti je PowerDesigner napravio zbku...hoce to ponekad.

On ti generise fajl sa sql recenicama nesto tipa :

create table "doktor" ........

i onda ti se javlja ovaj problem

a kada skines navodnike i pustis skript onda je sve ok...ne znam zbog cega se ovo desava
[ djoka_l @ 29.03.2010. 10:09 ] @
Oracle ima dva tipa identifikatora, običan i quoted.

ako otkucaš komandu:

create table tbl1 ...

Oracle kreira tabelu TBL1 (uppercase)

a ako otkucaš

create table "Tbl2" ...

napraviće tabelu sa imenom tačno onako kako si otkucao između navodnika - Znači Tbl2

select from tbl2 neće da radi zato što takva tabela ne postoji (TBL2), ali radi select * from "Tbl2"
[ strain @ 29.03.2010. 19:16 ] @
Pa to sam i ja sad video ali ne znam kako da resim taj problem.

Zbog cega je PD generisao drugacije skripte za dve baze. Kod jednih je sa "" a kod drugih bez. I sada moram da prepravljam citav SQL i da stavljam "" i da vodim racuna o velikim i malim slovima.
[ djoka_l @ 29.03.2010. 19:39 ] @
Verovatno imaš neki checkbox tipa "preserve case" ili nešto slično kada kreiraš objekte u bazi.

Prvo vidi kako ti se tabele zovu.


select table_name from user_tables;

napravi u SQL*Plus-u neku skriptu kao na primer:

spool rename_to_upper.sql
select 'rename table "' || table_name '" to ' upper(table_name) ';' from user_tables
where table_name <> upper(table_name);

@rename_to_upper

Ubuduće gledaj šta radiš...