Introduction


Tip
In the following problems, you may:
  • Modify the original database SQL file by adding the respective code
  • Create an SQL file with the code and execute it from the command line using SQL*Plus
  • Create an SQL file with the code, upload the file to the Oracle web server to execute it
  • Write the SQL code inside the web Oracle interface to execute it
  • Use Oracle Developer to write and run the programa

En los problemas siguientes, usted puede:
  • Modificar el archivo original de SQL de la base de datos, agregando el código respectivo
  • Crear un archivo de SQL y ejecutarlo desde la línea de comandos usando SQL*Plus
  • Crear un archivo de SQL, subir el archivo al servidor web de Oracle para ejecutarlo
  • Escribir el código directamente en la interface web de Oracle para ejecutarlo
  • Usar Oracle Developer para escribir y ejecutar el programa

Programming Language

It is a simplified form of English that adheres to strict set of grammatical rules. English is far too complicated a language for today's computers to follow. Programming languages, because they limit vocabulary, are much simpler. Programming forces you to write very simple, exact instructions.
Debido a que el idioma Inglés es demasiado complicado para las computadoras de hoy. Un lenguaje de programación es una forma simplificada del idioma Inglés que se adhiere a reglas gramaticales estrictas. Un lenguaje de programación es mucho más simple que el idioma Inglés porque tiene un vocabulario limitado. La programación obliga a escribir instrucciones sencillas y precisas.

PL/SQL

(Procedural Language SQL) It is a limited programming language that allows you to go beyond the relational SQL bounds by performing a sequence of tasks.
(Procedural Language SQL). Es un lenguaje de programación limitado que permite ir más allá de las fronteras de SQL al incorporar secuencia de tareas.

Compilation Process

It translates programs written in a high-level language (such as C++, C#, Pascal, FORTRAN, COBOL, PL/SQL, Java, or Ada) into a language that the computer can understand.
Este traslada los programas escritos de alto nivel tal como (C/C++, C#, Pascal, FORTRAN, COBOL, PL/SQL, Java o Ada) en un lenguaje que la computadora puede entender.

Problem 1
city_bank > Create the stored procedure using Oracle.
Cree el procedimiento almacenado usando Oracle.

city_bank.sql
-- _______ This procedure displays a message in SQL*Plus
CREATE OR REPLACE PROCEDURE p_hello
IS
BEGIN
     dbms_output.put_line('Hello World');
END;
/

MSDOS: cmd.exe

SQL*Plus: Release 11.2.0.2.0 Production on Wed Dec 5 14:47:58 2012

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

SQL> connect city_bank
Enter password:
Connected.
SQL> CREATE OR REPLACE PROCEDURE p_hello
  2  IS
  3  BEGIN
  4       dbms_output.put_line('Hello World');
  5  END;
  6  /

Procedure created.

SQL>


Tip
If you get any errors while creating an stored procedure, you can type: show errors. The command will return the error line number and a brief description of the error.

SQL> show errors
Errors for PROCEDURE P_HELLO:
4/2 PLS-00201: identifier '... DBXMS_OUTPUT
4/2 PL/SQL: Statement ignored


Si usted obtiene algún error mientras crea un procedimiento almacenado, usted puede usar el comando: show errors. El comando regresará el número de línea y una breve descripción del error.

Tip
An stored procedure can be used to:
  1. Execute several times SQL commands
  2. Have a fine control on SQL commands
  3. Execute complex database operations (i.e. maintenance)

Un procedimiento almacenado puede ser usado para:
  1. Ejecutar varias veces comandos de SQL
  2. Tener un control más fino en los comandos de SQL
  3. Ejecutar operaciones complejas en una base de datos (por ejemplo de mantenimiento)

Problem 2
city_bank > Execute the p_hello stored procedure.
Ejecute el procedimiento almacenado p_hello.

MSDOS: cmd.exe
SQL> SET SERVEROUTPUT ON;
SQL> execute p_hello;
Hello World

PL/SQL procedure successfully completed.

SQL>


Tip
Once a stored procedure has been compiled with no errors, it will be stored in the database. You do not need to store the p_hello.sql source file to execute the procedure. However, it is convenient to store the file for future use. To delete the stored procedure from the database use the DROP PROCEDURE command.
Una vez que el procedimiento ha sido compilado sin errores, éste será almacenado en el servidor. No hay necesidad de almacenar el archivo fuente p_hello.sql para ejecutar el procedimiento. Sin embargo, es conveniente guardar el archivo fuente para uso futuro. Para eliminar el procedimiento en la base de datos use el comando DROP PROCEDURE.

dbms_output

dbms_output.put_line() allows displaying a text message in the output of the management system console. PL/SQL is not commonly used to display values. Microsoft SQL Server provides the PRINT command to display messages.
dbms_output.put_line() es un comando de Oracle el cual produce que un mensaje sea mostrado en la salida del sistema de administración de datos. PL/SQL no es usado comúnmente para mostrar valores. Microsoft SQL Server usa el comando PRINT para mostrar mensajes.

clear screen

You can use "clear screen" in SQL*Plus to clear the Oracle console.
Usted puede usar "clear screen" en SQL*Plus para limpiar la consola de Oracle.

Problem 3
city_bank > Create and execute the p_hello stored procedure using Microsoft SQL Server.
Cree y ejecute el procedimiento almacenado p_hello usando Microsoft SQL Server.

city_bank.sql
-- _______ This procedure displays a message in the console
CREATE PROCEDURE p_hello
AS
BEGIN
     PRINT('Hello World');
END;
GO

micro_p_hello

Variable

While a stored procedure is being executed, it may need to stored data in memory to use it in the future. These memory locations are called variables, and their content is the variable value. The symbolic name that is given to the memory location is the name of the variable. See the code below in Oracle.
Mientras un procedimiento se está ejecutando, en algunos casos, se deben almacenar datos en memoria para usarlos en el futuro. Esta clase de localidad de memoria se llama variable, y su contenido se llama el valor de la variable. El nombre simbólico que asocia esta localidad de memoria es el nombre de la variable. Vea el código de abajo en Oracle.

variable

Tip
The variable names we use to refer things in our programs are totally meaningless to the computer. The name of a variable has nothing to do with its type. However, it is much easier for somebody to figure out how a program works if we choose names that make sense.
Aunque el nombre de la variable no tiene ningún significando para la computadora o no tiene nada que ver con su tipo. Sin embargo, es importante asignarle a una variable un nombre que ayude a entender el programa.

Tip
In Oracle, you should always use names that start with p_ for the stored procedures, in the same way, the name of an input variable must start with in_. This is not a requirement but it will help you to understand and maintain your code. In Microsoft SQL Server, variables start with @.
En Oracle, siempre asigne nombres que comiencen con p_ a los procedimientos y las variables de entrada con in_. Esto no es requerido pero ayudará a entender y mantener el código. En Microsoft SQL Server, las variables comienzan con @.

Set a Variable

In most programming languages the equal sign is used to set a variable value. On the other hand, in SQL := is used to assign in Oracle, and in Microsoft SQL Server the SET command is used.
En la mayoría de los lenguajes de programación se usa el signo del igual para asignar el valor de una variable. Sin embargo, en SQL se usa := para asignar en Oracle y en Microsoft SQL Server se usa SET.

Variable Comparison

In most programming languages two equal signs are used to compare two variables. On the other hand, in SQL one equal sign is used.
En la mayoría de los lenguajes de programación se usan dos signos de igual para comparar el valor de dos variable. Sin embargo, en SQL se usa un signo de igual.

Problem 4
city_bank > Create and execute the p_variable stored procedure using Microsoft SQL Server. The keyworkd AS is optional when declaring variables in Microsoft SQL Server.
Cree y ejecute el procedimiento almacenado p_variable usando Microsoft SQL Server. La palabra clave AS es opcional cuando se declara una variable en Microsoft SQL Server.

city_bank.sql
-- This programs displays a message on the console using a variable
CREATE PROCEDURE p_variable
AS
DECLARE @greetings AS NVARCHAR(20);
BEGIN
SET @greetings='Hola Mundo';
PRINT (@greetings);
END
GO

p_variable

Comments

They are ignored by the compiler. The purpose of a comment is to describe or explain the operation of a program to anyone reading its source code. It is very important to remember that the comments must not explain obvious things in the procedure. You can use multiline-comments for temporarily disable a block of code.
Los comentarios son ignorados por el compilador y tienen como propósito describir o explicar la operación del programa a la persona que se encuentra leyendo el código fuente. Es importante recordar que los comentarios no deben usarse para explicar cosas obvias en el procedimiento. Usted puede usar los comentarios de varias líneas para deshabilitar temporalmente un bloque de código.

Tip
There are two types of comments (see code below):
  • Single-line comments begin with -- and stop at the end of the line. This type of comments cannot be used where there is a semicolon.
  • The multiline-comment begins with a /* (a slash followed by an asterisk). It ends only when */ is encountered. Anything between these two comments symbols is completely ignored by the compiler. Multiline comments may be one or more line long.

Existen dos tipos de comentarios (vea el código de abajo):
  • Los comentarios de una sola línea que comienzan con -- y terminan cuando la línea termina. Este tipo de comentarios no pueden usarse donde hay un punto y coma.
  • Los comentarios de varias líneas, los cuales comienzan con un /* (una diagonal seguida de un asterisco). Estos terminan cuando se encuentra el primer */ (un asterisco seguido de una diagonal). Cualquiera texto entre estos símbolos es ignorado por el compilador. Estos comentarios puede estar formados por una o más líneas

comments

Problem 5
city_bank > Create and execute the p_aboutme stored procedure using Oracle.
Cree y ejecute el procedimiento almacenado p_aboutme usando Oracle.

city_bank.sql
CREATE OR REPLACE PROCEDURE p_aboutme
IS
p_first_name VARCHAR(20);
...
BEGIN
p_first_name:='First Name: Sergio';
...
END p_aboutme;
/

MSDOS: cmd.exe
SQL> SET SERVEROUTPUT ON;
SQL> EXECUTE p_aboutme;
First Name: Sergio
Last Name: Ledesma
Age: 36
Profession: Professor/Researcher

PL/SQL procedure successfully completed.

Problem 6
city_bank > Create and execute the p_aboutme stored procedure using Microsoft SQL Server.
Cree y ejecute el procedimiento almacenado p_aboutme usando Microsoft SQL Server.

city_bank.sql
CREATE PROCEDURE p_aboutme
AS
DECLARE @first_name VARCHAR(20);
...
BEGIN
SET @first_name='First Name: Sergio';
...
END
GO

Microsoft SQL Server
USE city_bank;
EXECUTE p_aboutme;

Output
First Name: Sergio
Last Name: Ledesma
Age: 36
Profession: Professor/Researcher

Problem 7
city_bank > Create and execute the p_numeric stored procedure using Oracle.
Cree y ejecute el procedimiento almacenado p_numeric usando Oracle.

city_bank.sql
CREATE OR REPLACE PROCEDURE p_numeric
IS
p_weight NUMBER(4, 0);
p_age INTEGER;
BEGIN
p_weight:=169;
p_age:=36;
dbms_output.put_line('Age: ');
dbms_output.put_line(p_age);
dbms_output.put_line('Weight: ');
dbms_output.put_line(p_weight);
END p_numeric;
/

MSDOS: cmd.exe
SQL> EXECUTE p_numeric;
Age:
36
Weight:
169

PL/SQL procedure successfully completed.


Problem 8
city_bank > Create and execute the p_numeric stored procedure using Microsoft SQL Server.
Cree y ejecute el procedimiento almacenado p_numeric usando Microsoft SQL Server.

city_bank.sql
CREATE PROCEDURE p_numeric
AS
     DECLARE @weight DECIMAL(4, 0);
     DECLARE @age INTEGER;
BEGIN
     SET @age=36;
     SET @weight=169;
     PRINT('Age: ' + CAST(@age AS VARCHAR));
     PRINT('Weight: ' + CAST(@weight AS VARCHAR));
END
GO

Microsoft SQL Server
USE city_bank;
EXECUTE p_numeric;

Output
Age: 36
Weight: 169


PUT

Each time the dbms_output.put_line command is executed, the text is written in a new line. To keep writting on the same line you may use put instead of put_line.
Cada vez que se llama dbms_output.put_line la salida se escribe en una nueva línea. Para seguir escribiendo en la misma línea, usted puede usar put en lugar de put_line.

Problem 9
city_bank > Create and execute the p_numput stored procedure using Oracle.
Cree y ejecute el procedimiento almacenado p_numput usando Oracle.

city_bank.sql
CREATE OR REPLACE PROCEDURE p_numput
IS
     p_weight NUMBER(4, 0);
     p_age INTEGER;
BEGIN
     p_weight:=36;
     p_age:=169;
     dbms_output.put('Age: ');
     dbms_output.put_line(p_age);
     dbms_output.put('Weight: ');
     dbms_output.put_line(p_weight);
END p_numput;
/

MSDOS: cmd.exe
SQL> EXECUTE p_numput;
Age: 169
Weight: 36

PL/SQL procedure successfully completed.


Problem 10
city_bank > Create and execute the p_concat stored procedure using Oracle.
Cree y ejecute el procedimiento almacenado p_concat usando Oracle.

city_bank.sql
CREATE OR REPLACE PROCEDURE p_concat
IS
     p_weight NUMBER(4, 0);
     p_age INTEGER;
BEGIN
     p_weight:=36;
     p_age:=169;
     dbms_output.put_line('Age: ' || p_age);
     dbms_output.put_line('Weight: ' || p_weight);
END p_concat;
/

MSDOS: cmd.exe
SQL> EXECUTE p_concat;
Age: 169
Weight: 36

PL/SQL procedure successfully completed.



© Copyright 2000-2019 Wintempla selo. All Rights Reserved. Sep 05 2019. Home