Skip to content

Instantly share code, notes, and snippets.

@leosuncin
Last active January 28, 2023 16:43
Show Gist options
  • Save leosuncin/5b2b99740ea79f5f761bfb300d2b4fd8 to your computer and use it in GitHub Desktop.
Save leosuncin/5b2b99740ea79f5f761bfb300d2b4fd8 to your computer and use it in GitHub Desktop.
Resumen de consultas PL/SQL para Oracle
-- Consultar usuarios loggeados
SELECT USERNAME FROM V$SESSION;
-- Consultar el usuario actual
SELECT user FROM dual;
SELECT SYS_CONTEXT('USERENV', 'CURRENT_USER') FROM dual;
-- Consultar la fecha actual
SELECT TO_CHAR (SYSDATE, 'MM-DD-YYYY HH24:MI:SS') "NOW" FROM DUAL;
-- Crear indice
CREATE INDEX
NOMBRE_INDICE
ON
NOMBRE_TABLA (
COLUMNA1,
COLUMNA2
);
-- Eliminar indice
DROP INDEX NOMBRE_INDICE;
-- Crear trigger
CREATE OR REPLACE TRIGGER NOMBRE_TRIGGER
[BEFORE | AFTER | INSTEAD OF]
[INSERT | DELETE | UPDATE | UPDATE OF (COL1, COL2)] [OR [INSERT | DELETE | UPDATE | UPDATE OF (COL1, COL2)]]
ON [BASE_DATOS | NOMBRE_TABLA]
REFERENCING [OLD AS ANTERIOR | NEW AS NUEVO | PARENT AS PADRE] -- opcional
FOR EACH ROW -- opcional: para registros en tablas
WHEN (CONDICION) -- opcional
DECLARE [] -- opcional
BEGIN
EXCEPTION []
END NOMBRE_TRIGGER;
/
-- (Des)habilita trigger
ALTER TRIGGER NOMBRE_TRIGGER DISABLE | ENABLE;
ALTER TABLE NOMBRE_TABLA DISABLE | ENABLE ALL TRIGGER;
-- Eliminar un trigger
DROP TRIGGER NOMBRE_TRIGGER;
-- Consultar trigger
SELECT TRIGGER_TYPE, TRIGGER_BODY FROM USER_TRIGGERS WHERE TRIGGER_NAME = 'NOMBRE_TRIGGER';
-- Crear vista
CREATE OR REPLACE VIEW NOMBRE_VISTA AS SELECT...
-- Crear función
CREATE OR REPLACE FUNCTION NOMBRE_FUNCION
(ARGUMENTO [IN | OUT [NOCOPY] | IN OUT] TIPO)
RETURN TIPO
IS DECLARACION
BEGIN
-- Cuerpo
RETURN VALOR
EXCEPTION
WHEN TIPO THEN...
END
/
-- Crear procedimiento
CREATE OR REPLACE PROCEDURE NOMBRE_PROCEDIMIENTO
(ARGUMENTO [IN | OUT [NOCOPY] | IN OUT] TIPO DEFAULT VALOR)
IS DECLARACION
BEGIN
-- Cuerpo
EXCEPTION
WHEN TIPO THEN...
END
/
-- Ejecutar procedimiento
CALL NOMBRE_PROCEDIMIENTO(ARGUMENTOS);
-- Variables
-- * Escalar
-- VARCHAR2(longitud)
-- NUMBER(precision, escala)
-- DATE
-- CHAR(longitud)
-- LONG
-- BOOLEAN
-- BINARY_INTEGER
CONTADOR BINARY_INTEGER := 0;
OTRO_CONTADOR CONTADOR%TYPE := 10;
-- Funciones nativas
-- CHR(NUMERO ASCII) retorna el caracter ASCII
-- TO_CHAR() convierte a caracter
-- TO_DATE() convierte a fecha
-- TO_NUMBER() convierte a numero
-- PRINT
-- ISNULL() manejar nulos
-- Cursores
-- SQL%ROWCOUNT
-- SQL%FOUND
-- SQL%NOTFOUND
-- SQL%ISOPEN
-- Condicional
IF CONDICION THEN
-- Cuerpo
ELSIF OTRA_CONDICION THEN
-- Otro cuerpo
ELSE
-- Si no
END IF;
-- Bucle
LOOP
-- Cuerpo
EXIT WHEN CONDICION
END LOOP;
-- For
FOR CONTADOR IN [REVERSE] INICIO..FIN LOOP
-- Cuerpo
END LOOP;
-- While
WHILE CONDICION LOOP
-- Cuerpo
END WHILE;
-- Registro
TYPE NOMBRE IS RECORD (
-- Campos
)
IDENTIFICADOR NOMBRE;
-- Tabla
-- .EXISTS
-- .COUNT
-- .NEXT
-- .EXTEND
-- .FIRST
-- .LAST
-- .PRIOR
-- .TRIM
-- .DELETE
TYPE NOMBRE IS TABLE OF (CAMPOS)|TABLA.COL%ROWTYPE
INDEX BY BINARY_INTEGER;
IDENTIFICADOR NOMBRE;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment