Post by Thomas OlszewickiPost by dapPost by AgataWitam,
moje pytanie jest dosc proste, ale potrzbuje znac ogolna odpowiedz, niezalezne
od bazy dany: Czy znak $ jest "normalnym" znakiem jak litera lub cyfra, tzn.,
czy nazwa kolumny moze zawierac (scislej zaczynac sie $)?
Nie. W oracle nawet cyfry są niedozwolone.
dap
--
dap.polanski.biz
Dap,
W oracle mozesz uzyc "" do nazw tables i column, wtedy to ograniczenie
mozna obejsc.
W praktyce nie uzywane.
Connected to Oracle Database 10g Enterprise Edition Release
10.2.0.2.0
Connected as ...
SQL> CREATE TABLE "$5" ("$3" NUMBER);
Table created
SQL> CREATE TABLE "5$" ("3This" NUMBER);
Table created
Hej Thomas, tak masz rację - używając znaku " można wymusić w Oracle
posiadanie a nazwach tabel i kolumn znaków specjalnych.
Ja pytanie Agaty zrozumiałem o pytanie o generalną zasadę.
Bo znaki specjalne ($ w tym wypadku i liczby) można bez żadnych
problemów umieszczać w środku nazwy, ale nie na początku.
14:28:22 SQL> create table $test ( ala number) ;
create table $test ( ala number)
*
ERROR at line 1:
ORA-00911: invalid character
Elapsed: 00:00:00.00
14:29:27 SQL> create table ala$test (ala number) ;
Table created.
Elapsed: 00:00:00.02
14:29:39 SQL> create table 1test (ala number) ;
create table 1test (ala number)
*
ERROR at line 1:
ORA-00903: invalid table name
Elapsed: 00:00:00.00
14:29:52 SQL> create table ala1test (ala number) ;
Table created.
Zresztą użycie tej opcji jako rodzaju furtki do kompatybilności między
wieloma bazami jest bez sensu, bo przy każdym odwołaniu do tabeli trzeba
podawać ", co jest dodatkową wadą takie rozwiązania.
SQL> create table "$test2" ("$ala" number) ;
Table created.
SQL> create table "1table" ("1" number) ;
Table created.
SQL> select * from $test2 ;
select * from $test2
*
ERROR at line 1:
ORA-00911: invalid character
SQL> select * From "$test2" ;
no rows selected
SQL>
dap