SlideShare una empresa de Scribd logo
Escribiendo declaraciones ejecutables
Después de completar ésta lección, usted deberá poder hacer lo siguiente: Describir el significado de la sección ejecutable Usar correctamente los identificadores Escribir declaraciones en la sección ejecutable Describir los roles de los bloques anidados Ejecutar y hacer pruebas en bloques PL/SQL Usar convención de códigos Objetivo de la lección En ésta lección, usted aprenderá a como escribir código ejecutable en el bloque PL/SQL. Usted también aprenderá los roles de código de los bloques anidados en PL/SQL, así como ejecutar y realizar pruebas con el código PL/SQL.
Porque PL/SQL es una extensión de SQL, las normativas generales de sintaxis de SQL también se aplican al lenguaje PL/SQL. La línea de texto de PL/SQL contiene grupo de caracteres conocidos como unidades léxicas, estos pueden clasificarse en los siguientes: Delimitadores (símbolos simples y compuestos) Identificadores, incluyen palabras reservadas Literales Comentarios Para mejorar la legibilidad, usted puede separar con espacios las unidades léxicas. De hecho, se debe separar los identificadores adyacentes por un espacio o puntuación No se debe incrustar espacios en unidades léxicas excepto para cadenas de literales y comentarios Las sentencias pueden separare al otro lado de la línea, pero palabras reservadas no se pueden separar
Los delimitadores son símbolos simples y compuestos que tienen un significado especial en PL/SQL símbolos simples  símbolos compuestos Símbolos  Significado + Operador de adición - Operador sustractor, negador * Operador de multiplicación / Operador de división = Operador relacional @ Identificador de acceso remoto ; Terminador de sentencias Símbolos  Significado <> Operador relacional != Operador relacional || Operador de concatenación -- Identificador de comentario de línea simple /* Empieza el delimitador de comentario */ Termina el delimitador de comentario := Operador de asignación
Los identificadores se usan para nombrar ítems de programas y unidades de PL/SQL. Pueden incluir constantes, variables, excepciones, cursores, cursores variables, subprogramas y paquetes. Los identificadores pueden contener hasta de 30 caracteres, pero deben empezar con caracteres alfabéticos. No se debe elegir  el mismo nombre para el identificador como el nombre de columna de la tabla usada en el bloque. Si el identificador PL/SQL  es el mismo que el de las sentencias SQL y tiene el mismo nombre de la columna. Entonces Oracle asume que ésta columna es referenciada Un identificador consiste de una letra, opcionalmente seguida de más letras, numerales, signo de dólar, raya abajo, y signos de número. Otros caracteres tal como guiones, slashes, y espacios son ilegales, los siguientes ejemplos muestran: dots&dashes -- illegal ampersand debit-amount   -- illegal guión on/of -- illegal slash user id -- illegal espacio Los ejemplos money$$$treee, SN##, try _again_are muestran que contiguo a signos de dólar, raya abajo y signos de dólar son permitidos
Un literal es  un valor de número explicito, carácter, cadena o booleano  que no es representado por un identificador Un carácter literal incluye todos caracteres imprimibles en PL/SQL caracteres como: letras, numerales, espacios y símbolos especiales Un literal numérico puede ser representado como un simple valor (por ejemplo, -32.5) o en notación científica (por ejemplo, 2E5, significa 2*(10 a la potencia de 5) = 200000). Un programa PL/SQL es terminado y ejecutado con un slash (/)
Comentar  código de documento cada fase y ayudar a depurar. Comentar el código PL/SQL con dos guiones(--)si el comentario es en una línea, o encerrar el comentario entre los símbolos /* y */ si el comentario tiene más líneas. Los comentarios son información estricta y no hacen cumplir condiciones o comportamiento lógico de los datos. Los comentarios bien escritos son extremadamente valiosos para legibilidad de código y mantenimiento de futuro código.
La  mayoría de las funciones disponibles en SQL también son válidas en expresiones PL/SQL  Funciones de número simple-fila Funciones de carácter simple-fila Función de conversión de tipo de datos Función de fechas Functiones de timestap GREATEST, LEAST Función de Micelanios Las siguientes funciones no están disponibles en sentencias procedimentales DECODE Funciones de Grupo como AVG, MIN, MAX, COUNT, SUM, STDDRV, y VARIANCE, Las funciones de grupo  se aplican a a grupo de filas en la tabla  por lo tanto solamente son disponibles en sentencias SQL y en el bloque PL/SQL
La mayoría de  las funciones SQL pueden usarse en PL/SQL. Estas funciones ayudan a manipular datos, éstas caen dentro de las siguientes categorías: Números Caracteres Conversión Fechas Miselanious La función de ejemplo en la diapositiva define lo siguiente: Construcción de nombre de direcciones mail para una compañía Convertir el nombre a minúsculas CHR es una funcion de SQL que convierte código ASCII al carácter correspondiente, 10 es el código para salto de línea PL/SQL tiene su propia función de gestión de errores que son: SQLCODE SQLERRM (Es la función de manejo de errores y serán discutidos en el curso siguiente)
PL / SQL intenta convertir tipos de datos dinámicamente si se mezclan en una declaración. Por ejemplo, si usted asigna a NUMBER el valor de una variable CHAR, PL/SQL trastada dinámicamente en numero dentro de una representación de carácter, y estos pueden ser almacenados en una variable CHAR. La situación contraria igual es aplicada, siempre que la expresión de carácter represente un valor numérico. Si ellos son compatibles, usted puede asignar caracteres de variables de dato y viceversa. A menos de expresiones, usted debería hacer tipo de datos iguales. Si ocurre que en una expresión se mezcla tipo de datos, usted deberá usar la apropiada función de conversión de datos Syntax TO_CHAR (value, fmt) TO_DATE (value, fmt) TO_NUMBER (value, fmt)   Donde:  value es una cadena de caracteres, números o datos Fmt es un formato de modelo usado para convertir valores
v_date := ‘January 13, 2001’ La conversión  del ejemplo define lo siguiente: Almacena la cadena de caracteres que representa una fecha en una variable declarada DATE de tipo fecha. Este código causa un error de sintaxis
v_date := TO DATE (`January 13, 2001´, `Month DD, YYYY`) Lo correcto del error de la anterior diapositiva, es convertir la cadena a fecha con la función de conversión TO_DATE. PL/SQL intenta la conversión si es posible, pero esto depende de la operación que empieza a llevar a cabo. Si practica buena programación el rendimiento explicito le hará llevar a cabo la conversión de tipo de datos, porque ellos pueden afectar favorablemente a llevara  cabo y permanecer constantes con el cambio de versiones de software.
Una de las ventajas de PL/SQL en relación con SQL es la habilidad de anidar sentencias. Usted puede anidar bloques donde quiera ejecutar sentencias de asignación, así hacer sentencias de bloque anidados. Por lo tanto, usted puede romper partes de bloque ejecutables en bloques pequeños. La sección de excepción puede contener bloques anidados iguales. Variables de Ámbito R eferencias a un identificador para resolver según el ámbito y la visibilidad. El ámbito de un identificador es aquella región de la unidad de programa (bloque, subprograma, o paquete) desde el cual se puede referenciar el identificador. Un identificador es visible solo en la región desde que usted puede referenciar el identificador usando un nombre sin calificar. La declaración de un identificador en un bloque PL/SQL  se considera local a ese bloque y global a todos los sub-bloques. Si un identificador global es re-declarado en un sub-bloque ambos identificadores permanecen al ámbito. Sin embargo, dentro del sub-bloque, solo el identificador local es visible porque usted debe usar un nombre calificado que referencie al identificador global. Aunque usted no pueda declarar un identificador dos veces en el mismo bloque, usted puede declarar un mismo identificador en dos bloques diferentes. Los dos ítems representan un identificador distinto, y algunos cambios en uno no lo afecta al otro. Sin embargo, un bloque no puede referenciar identificadores declarados en otro bloque del mismo nivel porque aquellos ni son identificadores locales ni globales en el bloque.
Bloques anidados y variables de entorno El bloque anidado que se muestra en la diapositiva, en nombre de la variable y puede ser referencia de la variable de nombre x. Sin embargo, no puede referenciar la variable y fuera del ámbito de y. Si la variable y de el bloque anidado es dado el mismo nombre de la variable x en otro bloque, este valor es valido solo en la duración del bloque anidado   Ámbito El ámbito de un identificador es la región de unidad de programa (bloque, sub-programa o paquete) desde el cual usted puede referenciar el identificador Visibilidad Un identificador es visible solo en la región desde la cual fue referenciado el identificador usando un nombre sin identificar.
Un identificador es visible en el bloque que es declarado y todos los sub-bloques anidados, procedimientos y funciones. Si el bloque no encuentra el identificador declarado local, el mira arriba de la sección declarativa del bloque encerrado. El Bloque nunca mira bajo del bloque encerrado. El ámbito aplica todas las declaraciones de objetos, incluyendo variables, cursores, excepciones definidas por el usuario y constantes
Cualificar un identificador usando el prefijo de etiqueta del bloque, en el ejemplo de la diapositiva, el bloque  outer  tiene la etiqueta outer. En el bloque interior, la variable tiene el mismo nombre, birthdate, desde el bloque outer en el bloque interno. El prefijo de la variable es el nombre del bloque, outer.birthdate
Cualificar un identificador usando el prefijo de etiqueta del bloque, en el ejemplo de la diapositiva, el bloque  outer  tiene la etiqueta outer. En el bloque interior, la variable tiene el mismo nombre, birthdate, desde el bloque outer en el bloque interno. El prefijo de la variable es el nombre del bloque, outer.birthdate
Los mismos que en SQL: lógicos, aritméticos, concatenación, paréntesis y orden de control de operaciones, operador exponencial Orden de operaciones: Las operaciones dentro de una expresión se llevan a cabo en un orden determinado en función de su prioridad (prioridad). La siguiente tabla muestra el orden por defecto desde la alta prioridad hasta la baja prioridad: Operador Operación ** Exponencial +, - Identidad, negación *, / Multiplicación, división +, - , || Adición, substracción, concatenación =, <, >, <=, >=, <>, !=, IS NULL, LIKE, BETWEEN, IN Comparison NOT Negación lógica AND Conjunction OR inclusion
Cuando trabajamos con nulos, usted puede evitar errores comunes teniendo en cuenta las siguientes normas: Implicar comparaciones nulas siempre da NULL Aplicando el operador lógico NOT a un null da NULL En sentencias condicionales de control, si la condición da null, esta secuencia asociada de sentencias no son ejecutadas
Hacer fácil el mantenimiento de código con: Documentar el código con comentarios Desarrollar una convención de código Desarrollar convenciones de nombres para identificar otros objetos Mejorar la legibilidad con sangrías
Para claridad, y mejorar la legibilidad, se debe aplicar sangría a cada nivel del código, se muestra la estructura, usted puede dividir líneas con sangría usando espacios de tabulaciones.  Compare la sentencia if: IF x>y THEN v_max:=x;ELSE v_max:=y,END IF; IF x>y THEN  v_max:=x; ELSE  v_max:=y, END IF;

Más contenido relacionado

PPT
Cap I Plsql
PPT
PPT
Intro sql y plsql
PPTX
PL SQL Diplomado Oracle
PDF
Plsql y paquetes
PPTX
Curso de pl sql básico
PPT
Mejoras en T-SQL para SQL Server 2005
PDF
Formas normales
Cap I Plsql
Intro sql y plsql
PL SQL Diplomado Oracle
Plsql y paquetes
Curso de pl sql básico
Mejoras en T-SQL para SQL Server 2005
Formas normales

La actualidad más candente (17)

PDF
Unidad iv base de datos
PDF
Apunte plsql
PPT
Normalizaciòn
PDF
PPTX
Normalizacion db
DOCX
Elementos de una variable trabajo grupal computacion
PDF
02 instrucciones
DOCX
Forma normal de boyce codd y algoritmos de descomposición
PPTX
Normalizacion
PPTX
Formas normales de codd
DOCX
M O D U L A R I D A D
PDF
Curso Oracle11g Lenguaje PL/SQL Avanzado
PPT
Presentacion PL/SQL
PDF
Yungan geovanny 6_s_ti_2
DOC
basededatos
PPTX
Tutorial de visual c++
PDF
103305862 t-sql
Unidad iv base de datos
Apunte plsql
Normalizaciòn
Normalizacion db
Elementos de una variable trabajo grupal computacion
02 instrucciones
Forma normal de boyce codd y algoritmos de descomposición
Normalizacion
Formas normales de codd
M O D U L A R I D A D
Curso Oracle11g Lenguaje PL/SQL Avanzado
Presentacion PL/SQL
Yungan geovanny 6_s_ti_2
basededatos
Tutorial de visual c++
103305862 t-sql
Publicidad

Destacado (20)

PPT
Presentazione dalila contu 3 e 2
PPS
Almuerzo En El Rascacielos
PPT
Projet Parmesan
PDF
Presentation Hoffeco
PDF
Ppt images2
PPTX
Présentation Anneaux de la Mémoire
PDF
La lune se sent mal aimée
PPT
Decrecimiento sostenible en economías ricas
PPTX
Le Pouitic: stages cuisine « foie gras et armagnac »
PDF
1 As AdWords de Google
PDF
Depliant de l'Alerte jaune, campagne de dépistage des maladies du foie de l'e...
DOC
Charles dickens resumen
PDF
Journal af
PDF
Devenir Revendeur Softlayer [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
PPT
Matisse
PDF
Very tom ford blog
PPT
#PCL 2015 - Une année de Prix Carbet des lycéens au LGT Baimbridge
PDF
Regards croisés sur la veille
PDF
Rapport Tic Track 4 trim 2010 region reunion
Presentazione dalila contu 3 e 2
Almuerzo En El Rascacielos
Projet Parmesan
Presentation Hoffeco
Ppt images2
Présentation Anneaux de la Mémoire
La lune se sent mal aimée
Decrecimiento sostenible en economías ricas
Le Pouitic: stages cuisine « foie gras et armagnac »
1 As AdWords de Google
Depliant de l'Alerte jaune, campagne de dépistage des maladies du foie de l'e...
Charles dickens resumen
Journal af
Devenir Revendeur Softlayer [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Matisse
Very tom ford blog
#PCL 2015 - Une année de Prix Carbet des lycéens au LGT Baimbridge
Regards croisés sur la veille
Rapport Tic Track 4 trim 2010 region reunion
Publicidad

Similar a Capitulo 2 (20)

PDF
01-declaracion-de-variables
 
PDF
Conceptos_basicos_de_programacion_con_PL.pdf
PDF
Conceptos basicos de programacion con pl sql
PDF
PLSQL y paquetes
PDF
Guia plsql breve
PDF
71946780 manual-pl-sql-espanol
DOCX
Sesion06b - Introducción al PL-SQL (Oracle)
PPT
ppDXGSDGSDGSDGSDGDSGSDGSDGSDGSDGDSGppp.ppt
PPT
nnnmmmgghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhg.ppt
PDF
Programacion en PL/SQL teoria y ejemplos
DOCX
Oracle pl sql
PPT
Semana 2 funciones sql en plsql
DOCX
Mapa mental de base de datos
PPT
Semana 1 3 variables en bloques plsql
PDF
Definiciones de datos
PDF
Tutorial_PL_SQL (1).pdf .
PDF
Tutorial_PL_SQL.pdf .
ODP
Funciones Útiles Oracle/SQL
01-declaracion-de-variables
 
Conceptos_basicos_de_programacion_con_PL.pdf
Conceptos basicos de programacion con pl sql
PLSQL y paquetes
Guia plsql breve
71946780 manual-pl-sql-espanol
Sesion06b - Introducción al PL-SQL (Oracle)
ppDXGSDGSDGSDGSDGDSGSDGSDGSDGSDGDSGppp.ppt
nnnmmmgghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhg.ppt
Programacion en PL/SQL teoria y ejemplos
Oracle pl sql
Semana 2 funciones sql en plsql
Mapa mental de base de datos
Semana 1 3 variables en bloques plsql
Definiciones de datos
Tutorial_PL_SQL (1).pdf .
Tutorial_PL_SQL.pdf .
Funciones Útiles Oracle/SQL

Más de Diego Guamán (10)

PPTX
Taller sbc
DOC
Paper Proyecto de IAA
PPTX
Inteligencia artificial avanzada
PPSX
Agente Reconedor de Señales de Transito
PPTX
Proyecto Folding@Home V2
PPT
Ejemplos de representación usando rdf y owl
PPT
Open Innovation
PPS
Porque despedia mis ecretaria.
PPS
Adios De Gabriel Marquez
PPS
Palabras
Taller sbc
Paper Proyecto de IAA
Inteligencia artificial avanzada
Agente Reconedor de Señales de Transito
Proyecto Folding@Home V2
Ejemplos de representación usando rdf y owl
Open Innovation
Porque despedia mis ecretaria.
Adios De Gabriel Marquez
Palabras

Último (20)

PPTX
la-historia-de-la-medicina Edna Silva.pptx
PPTX
El uso de las TIC en la vida cotidiana..
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PDF
Distribucion de frecuencia exel (1).pdf
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PPTX
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
PPTX
ccna: redes de nat ipv4 stharlling cande
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
MANUAL de recursos humanos para ODOO.pdf
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
PPTX
Uso responsable de la tecnología - EEST N°1
PDF
Estrategia de Apoyo de Daylin Castaño (5).pdf
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PPTX
Curso de generación de energía mediante sistemas solares
DOCX
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
PDF
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
PPT
Protocolos de seguridad y mecanismos encriptación
PDF
Teoría de estadística descriptiva y aplicaciones .pdf
la-historia-de-la-medicina Edna Silva.pptx
El uso de las TIC en la vida cotidiana..
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
Distribucion de frecuencia exel (1).pdf
informe_fichas1y2_corregido.docx (2) (1).pdf
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
ccna: redes de nat ipv4 stharlling cande
Diapositiva proyecto de vida, materia catedra
Historia Inteligencia Artificial Ana Romero.pptx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
MANUAL de recursos humanos para ODOO.pdf
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
Uso responsable de la tecnología - EEST N°1
Estrategia de Apoyo de Daylin Castaño (5).pdf
Documental Beyond the Code (Dossier Presentación - 2.0)
Curso de generación de energía mediante sistemas solares
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
Protocolos de seguridad y mecanismos encriptación
Teoría de estadística descriptiva y aplicaciones .pdf

Capitulo 2

  • 2. Después de completar ésta lección, usted deberá poder hacer lo siguiente: Describir el significado de la sección ejecutable Usar correctamente los identificadores Escribir declaraciones en la sección ejecutable Describir los roles de los bloques anidados Ejecutar y hacer pruebas en bloques PL/SQL Usar convención de códigos Objetivo de la lección En ésta lección, usted aprenderá a como escribir código ejecutable en el bloque PL/SQL. Usted también aprenderá los roles de código de los bloques anidados en PL/SQL, así como ejecutar y realizar pruebas con el código PL/SQL.
  • 3. Porque PL/SQL es una extensión de SQL, las normativas generales de sintaxis de SQL también se aplican al lenguaje PL/SQL. La línea de texto de PL/SQL contiene grupo de caracteres conocidos como unidades léxicas, estos pueden clasificarse en los siguientes: Delimitadores (símbolos simples y compuestos) Identificadores, incluyen palabras reservadas Literales Comentarios Para mejorar la legibilidad, usted puede separar con espacios las unidades léxicas. De hecho, se debe separar los identificadores adyacentes por un espacio o puntuación No se debe incrustar espacios en unidades léxicas excepto para cadenas de literales y comentarios Las sentencias pueden separare al otro lado de la línea, pero palabras reservadas no se pueden separar
  • 4. Los delimitadores son símbolos simples y compuestos que tienen un significado especial en PL/SQL símbolos simples símbolos compuestos Símbolos Significado + Operador de adición - Operador sustractor, negador * Operador de multiplicación / Operador de división = Operador relacional @ Identificador de acceso remoto ; Terminador de sentencias Símbolos Significado <> Operador relacional != Operador relacional || Operador de concatenación -- Identificador de comentario de línea simple /* Empieza el delimitador de comentario */ Termina el delimitador de comentario := Operador de asignación
  • 5. Los identificadores se usan para nombrar ítems de programas y unidades de PL/SQL. Pueden incluir constantes, variables, excepciones, cursores, cursores variables, subprogramas y paquetes. Los identificadores pueden contener hasta de 30 caracteres, pero deben empezar con caracteres alfabéticos. No se debe elegir el mismo nombre para el identificador como el nombre de columna de la tabla usada en el bloque. Si el identificador PL/SQL es el mismo que el de las sentencias SQL y tiene el mismo nombre de la columna. Entonces Oracle asume que ésta columna es referenciada Un identificador consiste de una letra, opcionalmente seguida de más letras, numerales, signo de dólar, raya abajo, y signos de número. Otros caracteres tal como guiones, slashes, y espacios son ilegales, los siguientes ejemplos muestran: dots&dashes -- illegal ampersand debit-amount -- illegal guión on/of -- illegal slash user id -- illegal espacio Los ejemplos money$$$treee, SN##, try _again_are muestran que contiguo a signos de dólar, raya abajo y signos de dólar son permitidos
  • 6. Un literal es un valor de número explicito, carácter, cadena o booleano que no es representado por un identificador Un carácter literal incluye todos caracteres imprimibles en PL/SQL caracteres como: letras, numerales, espacios y símbolos especiales Un literal numérico puede ser representado como un simple valor (por ejemplo, -32.5) o en notación científica (por ejemplo, 2E5, significa 2*(10 a la potencia de 5) = 200000). Un programa PL/SQL es terminado y ejecutado con un slash (/)
  • 7. Comentar código de documento cada fase y ayudar a depurar. Comentar el código PL/SQL con dos guiones(--)si el comentario es en una línea, o encerrar el comentario entre los símbolos /* y */ si el comentario tiene más líneas. Los comentarios son información estricta y no hacen cumplir condiciones o comportamiento lógico de los datos. Los comentarios bien escritos son extremadamente valiosos para legibilidad de código y mantenimiento de futuro código.
  • 8. La mayoría de las funciones disponibles en SQL también son válidas en expresiones PL/SQL Funciones de número simple-fila Funciones de carácter simple-fila Función de conversión de tipo de datos Función de fechas Functiones de timestap GREATEST, LEAST Función de Micelanios Las siguientes funciones no están disponibles en sentencias procedimentales DECODE Funciones de Grupo como AVG, MIN, MAX, COUNT, SUM, STDDRV, y VARIANCE, Las funciones de grupo se aplican a a grupo de filas en la tabla por lo tanto solamente son disponibles en sentencias SQL y en el bloque PL/SQL
  • 9. La mayoría de las funciones SQL pueden usarse en PL/SQL. Estas funciones ayudan a manipular datos, éstas caen dentro de las siguientes categorías: Números Caracteres Conversión Fechas Miselanious La función de ejemplo en la diapositiva define lo siguiente: Construcción de nombre de direcciones mail para una compañía Convertir el nombre a minúsculas CHR es una funcion de SQL que convierte código ASCII al carácter correspondiente, 10 es el código para salto de línea PL/SQL tiene su propia función de gestión de errores que son: SQLCODE SQLERRM (Es la función de manejo de errores y serán discutidos en el curso siguiente)
  • 10. PL / SQL intenta convertir tipos de datos dinámicamente si se mezclan en una declaración. Por ejemplo, si usted asigna a NUMBER el valor de una variable CHAR, PL/SQL trastada dinámicamente en numero dentro de una representación de carácter, y estos pueden ser almacenados en una variable CHAR. La situación contraria igual es aplicada, siempre que la expresión de carácter represente un valor numérico. Si ellos son compatibles, usted puede asignar caracteres de variables de dato y viceversa. A menos de expresiones, usted debería hacer tipo de datos iguales. Si ocurre que en una expresión se mezcla tipo de datos, usted deberá usar la apropiada función de conversión de datos Syntax TO_CHAR (value, fmt) TO_DATE (value, fmt) TO_NUMBER (value, fmt)   Donde: value es una cadena de caracteres, números o datos Fmt es un formato de modelo usado para convertir valores
  • 11. v_date := ‘January 13, 2001’ La conversión del ejemplo define lo siguiente: Almacena la cadena de caracteres que representa una fecha en una variable declarada DATE de tipo fecha. Este código causa un error de sintaxis
  • 12. v_date := TO DATE (`January 13, 2001´, `Month DD, YYYY`) Lo correcto del error de la anterior diapositiva, es convertir la cadena a fecha con la función de conversión TO_DATE. PL/SQL intenta la conversión si es posible, pero esto depende de la operación que empieza a llevar a cabo. Si practica buena programación el rendimiento explicito le hará llevar a cabo la conversión de tipo de datos, porque ellos pueden afectar favorablemente a llevara cabo y permanecer constantes con el cambio de versiones de software.
  • 13. Una de las ventajas de PL/SQL en relación con SQL es la habilidad de anidar sentencias. Usted puede anidar bloques donde quiera ejecutar sentencias de asignación, así hacer sentencias de bloque anidados. Por lo tanto, usted puede romper partes de bloque ejecutables en bloques pequeños. La sección de excepción puede contener bloques anidados iguales. Variables de Ámbito R eferencias a un identificador para resolver según el ámbito y la visibilidad. El ámbito de un identificador es aquella región de la unidad de programa (bloque, subprograma, o paquete) desde el cual se puede referenciar el identificador. Un identificador es visible solo en la región desde que usted puede referenciar el identificador usando un nombre sin calificar. La declaración de un identificador en un bloque PL/SQL se considera local a ese bloque y global a todos los sub-bloques. Si un identificador global es re-declarado en un sub-bloque ambos identificadores permanecen al ámbito. Sin embargo, dentro del sub-bloque, solo el identificador local es visible porque usted debe usar un nombre calificado que referencie al identificador global. Aunque usted no pueda declarar un identificador dos veces en el mismo bloque, usted puede declarar un mismo identificador en dos bloques diferentes. Los dos ítems representan un identificador distinto, y algunos cambios en uno no lo afecta al otro. Sin embargo, un bloque no puede referenciar identificadores declarados en otro bloque del mismo nivel porque aquellos ni son identificadores locales ni globales en el bloque.
  • 14. Bloques anidados y variables de entorno El bloque anidado que se muestra en la diapositiva, en nombre de la variable y puede ser referencia de la variable de nombre x. Sin embargo, no puede referenciar la variable y fuera del ámbito de y. Si la variable y de el bloque anidado es dado el mismo nombre de la variable x en otro bloque, este valor es valido solo en la duración del bloque anidado   Ámbito El ámbito de un identificador es la región de unidad de programa (bloque, sub-programa o paquete) desde el cual usted puede referenciar el identificador Visibilidad Un identificador es visible solo en la región desde la cual fue referenciado el identificador usando un nombre sin identificar.
  • 15. Un identificador es visible en el bloque que es declarado y todos los sub-bloques anidados, procedimientos y funciones. Si el bloque no encuentra el identificador declarado local, el mira arriba de la sección declarativa del bloque encerrado. El Bloque nunca mira bajo del bloque encerrado. El ámbito aplica todas las declaraciones de objetos, incluyendo variables, cursores, excepciones definidas por el usuario y constantes
  • 16. Cualificar un identificador usando el prefijo de etiqueta del bloque, en el ejemplo de la diapositiva, el bloque outer tiene la etiqueta outer. En el bloque interior, la variable tiene el mismo nombre, birthdate, desde el bloque outer en el bloque interno. El prefijo de la variable es el nombre del bloque, outer.birthdate
  • 17. Cualificar un identificador usando el prefijo de etiqueta del bloque, en el ejemplo de la diapositiva, el bloque outer tiene la etiqueta outer. En el bloque interior, la variable tiene el mismo nombre, birthdate, desde el bloque outer en el bloque interno. El prefijo de la variable es el nombre del bloque, outer.birthdate
  • 18. Los mismos que en SQL: lógicos, aritméticos, concatenación, paréntesis y orden de control de operaciones, operador exponencial Orden de operaciones: Las operaciones dentro de una expresión se llevan a cabo en un orden determinado en función de su prioridad (prioridad). La siguiente tabla muestra el orden por defecto desde la alta prioridad hasta la baja prioridad: Operador Operación ** Exponencial +, - Identidad, negación *, / Multiplicación, división +, - , || Adición, substracción, concatenación =, <, >, <=, >=, <>, !=, IS NULL, LIKE, BETWEEN, IN Comparison NOT Negación lógica AND Conjunction OR inclusion
  • 19. Cuando trabajamos con nulos, usted puede evitar errores comunes teniendo en cuenta las siguientes normas: Implicar comparaciones nulas siempre da NULL Aplicando el operador lógico NOT a un null da NULL En sentencias condicionales de control, si la condición da null, esta secuencia asociada de sentencias no son ejecutadas
  • 20. Hacer fácil el mantenimiento de código con: Documentar el código con comentarios Desarrollar una convención de código Desarrollar convenciones de nombres para identificar otros objetos Mejorar la legibilidad con sangrías
  • 21. Para claridad, y mejorar la legibilidad, se debe aplicar sangría a cada nivel del código, se muestra la estructura, usted puede dividir líneas con sangría usando espacios de tabulaciones. Compare la sentencia if: IF x>y THEN v_max:=x;ELSE v_max:=y,END IF; IF x>y THEN v_max:=x; ELSE v_max:=y, END IF;