Inicio > Oracle > Sobre los nombres en una base Oracle

Sobre los nombres en una base Oracle


Ahora que ya se aprecia la importancia de asignar nombres a la lógica, es tiempo de hablar sobre las reglas para los nombres (identificadores) tanto en PL/SQL como, de forma más general, en una base Oracle.

Estas son las reglas para construir identificadores válidos en una base Oracle:

• El largo máximo es de 30 caracteres.
• El primer caracter debe ser una letra, pero cada caracter después del primero puede ser una letra, un número (0 a 9), un signo de pesos ($), un guión bajo (_), o un numeral (#).

Ejemplos de identificadores válidos:

hola_RAHSUAREZ
hola$RAHSUAREZ
hola#RAHSUAREZ

pero estos son inválidos:
1hola_RAHSUAREZ
hola%RAHSUAREZ

• PL/SQL es case-insensitive (no es sensitivo a mayúsculas y minúsculas) con respecto a los identificadores. PL/SQL trata todos los siguientes como el mismo identificador:

hola_rahsuarez
Hola_Rahsuarez
HOLA_RAHSUAREZ

Para ofrecer más flexibilidad, Oracle permite evitar las restricciones de la segunda y tercera regla, encerrando al identificador entre comillas dobles. El identificador encerrado entre comillas puede contener cualquier secuencia de caracteres imprimibles excluyendo las comillas dobles; las diferencias entre mayúsculas y minúsculas serán además preservadas. Así, todos los siguientes identificadores son válidos y distintos:

“Abc”
“ABC”
“a b c”

Es muy raro encontrar identificadores entre comillas en código PL/SQL.

Estas mismas reglas aplican a los nombres de los objetos de base de datos como tablas, vistas y procedimientos, con una regla adicional: a menos que se encierren entre comillas los nombres de estos objetos, Oracle los mantendrá en mayúsculas. Ejemplo:

CREATE OR REPLACE PROCEDURE hola_rahsuarez IS
BEGIN
DBMS_OUTPUT.put_line(‘¡Hola RAHSUAREZ!’);
END hola_rahsuarez;

La base de datos Oracle lo mantendrá con el nombre HOLA_RAHSUAREZ

En el bloque siguiente, llamaremos este procedimiento tres veces, y aunque el nombre luzca diferente cada vez, siempre se ejecutará el mismo procedimiento:

BEGIN
hola_rahsuarez;
HOLA_RAHSUAREZ;
“HOLA_RAHSUAREZ”;
END;

Por otro lado, la base Oracle no será capaz de ejecutar el procedimiento si lo llamamos como sigue:

BEGIN
“hola_rahsuarez”;
END;

Esto buscará dentro de la base un procedimiento llamado hola_rahsuarez en lugar de HOLA_RAHSUAREZ.

Si no se quiere que los nombres de los subprogramas se mantengan en mayúsculas, los nombres se deben encerrar entre comillas cuando se crea el subprograma:

CREATE OR REPLACE PROCEDURE “Hola_rahSuarez” IS
BEGIN
DBMS_OUTPUT.put_line(‘¡Hola RAHSUAREZ!’);
END “Hola_rahSuarez”;

logo shipment4you 342 68 PNG ESP WEB

Categorías:Oracle
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: