[ 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š...
Copyright (C) 2001-2024 by www.elitesecurity.org. All rights reserved.