Tip |
In the following problems, you may:
En los problemas siguientes, usted puede:
|
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:
Un procedimiento almacenado puede ser usado para:
|
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 |
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. |
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 |
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):
Existen dos tipos de comentarios (vea el código de abajo):
|
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. |