domingo, 12 de mayo de 2013

Como se Pueden Emplear Nombres Malos en Oracle

Hallé este ejemplo, escrito por Robert Vollman, aquí. Es en inglés y por eso decidí hacer una traducción española. En Oracle, el nombre de una tabla, un procedimiento o una variable no puede empezar con un número: 

SQL> alter session set nls_language = 'SPANISH';

Session altered.

SQL> CREATE TABLE 123Tabla (unvalor NUMBER);
CREATE TABLE 123Tabla (unvalor NUMBER)
             *
ERROR at line 1: ORA-00903: nombre de tabla no válido
SQL>


Si quieres hacerlo, hay que poner el nombre entre comillas:

SQL> CREATE TABLE "123Tabla" (unvalor NUMBER);

Table created.

SQL>


Un nombre entre comillas es sensible al uso de mayúsculas y minúsculas:

SQL> DROP TABLE "123TABLA";
DROP TABLE "123TABLA"
           *
ERROR at line 1:
ORA-00942: la tabla o vista no existe

SQL> DROP TABLE "123Tabla";

Table dropped.

SQL>


También se pueden emplear palabras reservadas entre comillas:

SQL> CREATE TABLE TABLE (NUMBER NUMBER);
CREATE TABLE TABLE (NUMBER NUMBER)
             *
ERROR at line 1:
ORA-00903: nombre de tabla no válido

SQL> CREATE TABLE "TABLE" (NUMBER NUMBER);
CREATE TABLE "TABLE" (NUMBER NUMBER)
                      *
ERROR at line 1:
ORA-00904: : identificador no válido

SQL> CREATE TABLE "TABLE" ("NUMBER" NUMBER);

Table created.

SQL> DESC "TABLE"

Name                    Null?    Type
----------------------- -------- ----------------
NUMBER                           NUMBER

SQL>

No hay comentarios:

Publicar un comentario