2011-05-05 23 views
8

Tengo el siguiente código para crear un tipo de objeto en Oracle (PL ??)¿Cuál es la importancia de # en SQL?

CREATE OR REPLACE TYPE STAFF_T as OBJECT(Staff_ID# NUMBER, Person PERSON_T); \ 

Me gustaría saber cuál es el significado de la # anexa a la variable staff_id en la declaración?

+0

Algunas personas usan # como abreviatura de "número". P.ej. 'POLICY #' se pronunciará como "Número de póliza". En su caso, sería "Número de identificación del personal", supongo. –

Respuesta

2

Quien haya escrito el código probablemente no significó nada especial para #.

Pero # aparentemente significa algo para Oracle, aunque no sé qué. Desde el SQL Language Reference:

Oracle que es claramente hostil a partir usando $ y # en sin entrecomillar identificadores.

Estas son algunas conjeturas para lo que la advertencia es acerca de:

  • que está relacionado con un error muy viejo (el aviso se remonta por lo menos a Oracle 7)
  • Oracle planea hacer algo con en una futura versión
  • ese carácter no está disponible en todos los teclados, juegos de caracteres o plataformas que Oracle admite

El diccionario de datos usa mucho el signo de número y, por lo que puedo ver, funciona muy bien para los objetos del usuario. Pero para estar seguro, es posible que desee eliminarlo.

+1

Dudo que sea un viejo error, porque muchos de los diccionarios de datos de Oracle los usan. Por ejemplo, la columna SERIAL # en V $ SESSION. – APC

+1

Creo que esto es por razones de compatibilidad. '#', por ejemplo, es un comentario en 'MySQL'. – Quassnoi

10

Sin significado especial.

Oracle permite el uso de $, _ y # en los identificadores, al igual que cualquier otro caracteres alfanuméricos, pero el identificador debe comenzar con un carácter alfabético (una carta).

3

Eso es parte del nombre de la columna Staff_ID#. El signo de libra es una parte permitida de un identificador (nombre de tabla/columna) en PL/SQL. Ver here

Cuestiones relacionadas