Buscar en moleculax

Este blog es un ensayo digital donde el pensamiento estructurado se encuentra con la introspección profunda. Explora la arquitectura del conocimiento: desde lo técnico hasta los fundamentos éticos. Aquí, cada algoritmo tiene propósito, cada línea de código refleja intención, y cada reflexión filosófica busca optimizar no solo sistemas, sino también decisiones humanas. Este blog no solo enseña a pensar, enseña a discernir, a construir con sentido. Porque el verdadero desarrollo nace de la conciencia, y eso exige precisión, virtud y coraje.

Tenemos que aprender a contemplar las potenciales consecuencias de nuestros planes, para impedir que nos sorprendan. De esta manera, tendremos más control sobre las situaciones difíciles ya que el verdadero progreso no se mide por la velocidad con la que avanzamos, sino por la dirección que elegimos. En un mundo cada vez más interconectado, el desarrollo de la humanidad exige más que tecnología y conocimiento: requiere conciencia, empatía y propósito.

Debemos cultivar una inteligencia que no solo resuelva problemas, sino que los prevenga con sabiduría. Una ciencia que no solo descubra, sino que se pregunte por qué y para quién. Una economía que no solo crezca, sino que reparta con justicia. Y una cultura que no solo celebre lo diverso, sino que lo abrace como fuerza vital.

Cada decisión que tomamos, cada palabra que decimos, cada idea que compartimos, puede ser una semilla de transformación. El futuro no está escrito: lo estamos escribiendo juntos, ahora mismo.

Que el desarrollo humano sea integral, sostenible y profundamente humano. Porque solo cuando elevamos a todos, nos elevamos como especie.

Sabiduría Justicia Templanza Coraje
Examples - PL/SQL 1



---crea respaldo DB csv

CREATE OR REPLACE FUNCTION salvar()
RETURNS boolean AS
$BODY$
BEGIN
COPY (SELECT * FROM tbl_ ) TO '/ruta/fileTable.csv' WITH CSV;
--Por cada tabla se tiene que crear un COPY.
RETURN true;
END;
$BODY$
  LANGUAGE plpgsql;

------------------------------

CREATE OR REPLACE FUNCTION TG_creaView()
RETURNS TRIGGER AS
$$
DECLARE
BEGIN
-- Borra la  vista si existe.
DROP VIEW IF EXISTS view_;
--Crea una vista con los valores de la tabla seleccionada.
CREATE VIEW view_ AS SELECT * FROM tbl_;
RETURN NULL;
END;
$$
LANGUAGE plpgsql;

--Trigger que se ejecuta luego de insertar valores en la
--tabla indicada en la función
CREATE TRIGGER INSERT_View AFTER INSERT ON tbl_ FOR EACH ROW
EXECUTE PROCEDURE TG_createView();





--Trigger que se ejecuta cuando se elimina un dato de  tabla.
CREATE OR REPLACE FUCTION TG_DELETEView()
RETURNS TRIGGER AS
$$
BEGIN
INSERT INTO view_  VALUES(OLD.campo1,OLD.campo2,...);
END;
$$
LANGUAGE plpgsql;

CREATE TRIGGER DELETE_View AFTER DELETE tbl_  FOR EACH ROW
EXECUTE PROCEDURE TG_DELETEView();


--Trigger que se ejecuta cuando se cuando inserta new data
CREATE OR REPLACE FUNCTION TG_insert() RETURNS TRIGGER AS $$
BEGIN
INSERT INTO tabla_ VALUES(NEW.valor1,NEW.valir2,...);
END;
$$LANGUAGE plpgsql;

CREATE TRIGGER INSERT_newdata AFTER INSERT ON tbl_tabla FOR EACH ROW
EXECUTE PROCEDURE TG_insert();



CREATE OR REPLACE FUNCTION show() RETURNS tbl_alumnos AS $$
BEGIN
SELECT cedula FROM tbl_alumnos;
END;
$$LANGUAGE plpgsql;

------
-- Ejercicio basico para eliminar datos de tabla.
CREATE OR REPLACE FUNCTION DEL_v(valor integer) RETURNS void AS
$$
DELETE FROM TBL_ WHERE valor=$1;
$$
LANGUAGE sql;
----

-- Ejercicio basico para insertar valor
CREATE OR REPLACE FUCTION INS_v(VALOR1 integer,VALOR2 varchar) RETURNS void AS
$$
INSERT INTO TBL_ VALUES($1,$2);
$$
LANGUAGE sql;

-----


CREATE OR REPLACE FUNCTION VAR_p(v1 integer, v2 varchar) RETURNS varchar AS
$$
DECLARE
id integer;
valor varchar;
BEGIN
UPDATE personal SET nombre=$2 WHERE codigo=$1;
SELECT nombre FROM personal  INTO valor  WHERE codigo=$1;
RETURN valor;
END;
$$LANGUAGE plpgsql;


-----
CREATE OR REPLACE FUNCTION gettbl() RETURNS SETOF nombreTabla AS
$BODY$
DECLARE
r nombreTabla%rowtype;
BEGIN
FOR r IN SELECT * FROM tbl_
WHERE nombreCampo1 > 0
LOOP
RETURN NEXT r; -- Retorna los valores row del SELECT
END LOOP;
RETURN;
END
$BODY$
LANGUAGE plpgsql;

SELECT * FROM gettbl();
----------------

CREATE FUNCTION listarTBL() RETURNS SETOF tbl_ AS
$$
SELECT * FROM tbl_;
$$ LANGUAGE sql;

-----------------

CREATE OR REPLACE FUNCTION FUN_nom() RETURNS TRIGGER AS
$$
BEGIN

IF (...) THEN
ELSIF (...) THEN
ELSE (...) THEN
END IF;
RETURN NULL;
END;
$$LANGUAGE plpgsql;

----
CREATE TRIGGER EJEC_nom BEFORE INSERT ON nom_tabla FOR EACH ROW
EXECUTE PROCEDURE FUN_nom();


------------

CREATE OR REPLACE FUNCTION NOM_fun() RETURNS TRIGGER AS
$$
BEGIN
    DELETE FROM tbl_ WHERE OLD.camp=camp;
    INSERT INTO tbl_2 VALUES(NEW.*);
    RETURN NULL;
END;
$$LANGUAGE plpgsql;
----
CREATE TRIGGER EJEC_NOM_fun BEFORE UPDATE ON tbl_  FOR EACH ROW
EXECUTE PROCEDURE NOM_fun();

-----

--En lineas generales para TRIGGER

CREATE OR REPLACE FUNCTION trigger_function_name()
RETURNS trigger AS $SAMPLE_CODE$
BEGIN
/* your code goes here*/
RETURN NEW;
END;
$SAMPLE_CODE$ LANGUAGE plpgsql;

---
CREATE TRIGGER trigger_name {BEFORE | AFTER | INSTEAD OF} {event
[OR ...]}
ON table_name
[FOR [EACH] {ROW | STATEMENT}]
EXECUTE PROCEDURE trigger_function_name();

-----
--TRIGGER para crear respaldo csv de tabla en ruta determinada
---despues de insertar datos.
CREATE OR REPLACE FUNCTION RES_pers() RETURNS TRIGGER AS
$$
BEGIN
COPY (SELECT * FROM personal ) TO '/ruta/fileTabla.csv' WITH CSV;
END;
$$LANGUAGE plpgsql;
CREATE TRIGGER RESP_pers AFTER INSERT OR UPDATE ON nomtablaFOR FOR EACH ROW
EXECUTE PROCEDURE RES_pers();

--------

CREATE OR REPLACE FUNCTION audit_func_all() RETURNS trigger AS
$BODY$
BEGIN
--this IF block confirms the operation type to be INSERT.
IF (TG_OP = 'INSERT') THEN
INSERT INTO warehouse_audit
(wlog_id, insertion_time, operation_detail)
VALUES
(new.warehouse_id, current_timestamp,'INSERT
operation performed. Row with id '||NEW.warehouse_id||
'inserted');
RETURN NEW;
--this IF block confirms the operation type to be UPDATE.
ELSIF (TG_OP = 'UPDATE') THEN
INSERT INTO warehouse_audit
(wlog_id, insertion_time, operation_detail)
VALUES
(NEW.warehouse_id, current_timestamp,'UPDATE operation
performed. Row with id '||NEW.warehouse_id||' updates
values '||OLD||' with '|| NEW.* ||'.');
RETURN NEW;
--this IF block confirms the operation type to be DELETE
ELSIF (TG_OP = 'DELETE') THEN
INSERT INTO warehouse_audit
(wlog_id, insertion_time, operation_detail)
VALUES (OLD.warehouse_id, current_timestamp,'DELETE
operation performed. Row with id '||OLD.warehouse_id||
'deleted ');
RETURN OLD;
END IF;
RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql;

CREATE TRIGGER audit_all_ops_trigger
AFTER INSERT OR UPDATE OR DELETE ON warehouse_tbl
FOR EACH ROW
EXECUTE PROCEDURE audit_func_all();

----

Puede descargar en: https://github.com/moleculax/plsql

.

15dias (4) agenda 2023 (1) Algo que leer (266) Android (2) Angular (2) Apache (6) API (1) Arte y Cultura (11) Artes Marciales (10) Astro (1) Banner (1) Base de datos (35) Batalla Cultural (5) Big Data (12) Budismo (4) cabala judia (2) Calculo Asistido por computadoras (2) Canaima (6) Caos (1) Ceo (1) ciencias (1) Cine (1) Cobol (12) Cobra Kai (1) Codigo Linux Documental (2) Computación (3) Computación forense (14) Configurando Samba (1) Conocimiento (1) Consola (8) contenedores (9) Criptomonedas (3) Cultura (1) Cursos (16) Darkweeb (3) Data Mining (1) Debian (18) Deep Learning (2) DeepWeb (7) demografia (9) Deporte y Recreación (9) Deportes (10) desclasificados (7) Desktop (1) developers (1) DevOps (1) Docker (11) Document (1) Ecología (6) Editor (3) Editores (4) Educacion y TIC (31) Electronica (2) Empleos (1) Emprendimiento (7) Espiritualidad (2) estoicismo (4) Eventos (2) Excel (1) Express (1) fedora (1) Filosofía (25) Flisol 2008 (3) Flisol 2010 (1) Flisol 2015 (1) framework (2) Funny (1) Geografía (1) Gerencia y Liderazgo (72) Gestor de Volúmenes Lógicos (1) Git (7) GitHub (8) Globalizacion (5) gnu (28) Go (1) gobiernos (2) golang (2) Google por dentro (1) GraphQL (1) gRPC (1) Hackers - Documental (8) Hacking (31) Historia (3) howto (189) html (1) IA (22) IntelliJIDEA (1) Internet (6) Introducción a los patrones (2) J SON (1) java (52) java eclipse (2) javaScript (9) JDK (1) jiujitsu (4) Json (1) Junit (1) kali (39) kernel (2) Kotlin (1) Laravel (2) Latin (1) LIbreOffice (1) Libros (4) Linux (48) Linux VirtualBox (1) Literatura (1) Machine Learning (2) Manuales (42) mariaDB (1) Markdown (4) Marketing (1) Matando ladilla (9) Matematricas (1) Math (1) maven (1) metodos https (1) Modelos (1) MongoDB (17) Multimedia (1) Musica (1) mvc (2) Mysql (20) MySQL Workbench (1) Nagios (2) Naturismo (1) node (5) Node.js (6) NodeJS (9) NoSQL (1) Oracle (9) Oracle sql (9) Php (3) PL/SQL (1) Plsql (1) PNL (1) Poblacion (2) Podman (1) Poesia (1) Politica (5) Política (1) Postgresql (9) PowerShell (1) programacion (86) Psicologia (11) Python (7) React (1) Recomiendo (1) Redes (31) Redis (2) Religion (2) REST (2) Rock (1) Rock/Metal Mp3 (2) RUP (1) Salud (5) sc:snap:android-studio (1) sc:snap:datagrip (1) sc:snap:gitkraken linux (1) Seguridad (18) Seguridad con Gnu Privacy (2) Seo (1) simulaEntrevistas (10) simularExamen (10) Sistemas Operativos (69) SOAP (1) Sociedad (5) Software Libre (169) Soporte Tecnico (12) Sphinx (1) spring (1) spring boot (10) SQL (3) SQL en postgreSQL (39) Taekwondo (11) Tecnologia (5) Tecnología (27) Templarios (5) Tendencias (1) Tensorflow (4) Thymeleaf (1) Tomcat (2) Tor (9) Trialectica (3) TYPEACRIPT (1) Ubuntu (5) unix (2) Vida activa (1) Videos (11) Videos Educativos (10) Vim (1) Viral (3) Visual Studio (1) wallpaper (2) web (1) Wifi (2) Windows (3) WWW (2) Xrandr (1) Zero Trust (2)

Sabiduria Justicia Templanza Coraje.

Hay que contemplar las potenciales consecuencias de nuestros planes, para impedir que nos sorprendan. De esta manera, tendremos más control sobre las situaciones difíciles.


Powered by