Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Deadpool & Wolverine (2023)

Outlook e muta pe Android

Constructie Mun. Iasi. Casa P+1.

Cum mai rezolvati cu chiriasii ra...
 Tastatura si mouse cu baterie int...

AC Gree duce la palpait de becuri

Sfat / recomandare construire aco...

Cablu analog vs digital
 Ce valoare stabiliti la RSSI la u...

Sony FH 10W reparatie

Monitor cu consum URIAS

Topul rușinii la nivelul PE
 probleme domeniu sau configuratie...

Se poate vedea on-line filmul ...

Mazda 3 IV Sedan 2.0 e-SkyActiv-G...

NATO - Articolul 5
 

Shell script pentru 3 update-uri folosind triggere (sau nu)

- - - - -
  • Please log in to reply
6 replies to this topic

#1
DrLexic

DrLexic

    Member

  • Grup: Members
  • Posts: 313
  • Înscris: 01.08.2010
Va salut,

Am de facut 3 update-uri pe o baza de date. Ele trebuie sa depinda unul de celalalt. 2 de 1 si 3 de 2.
Am nevoie sa stiu daca unul dintre ele da fail.

In scriptul de bash m-am gandit la sqlplus, folosesc si un wallet din care ia credentialele de conectare, asa e mediul deja setat. Ma folosesc de metoda asta.

Ideea e ca nu ma pot folosi de exit code-ul lui sqlplus sa stiu daca dau mail in caz de eroare, asta pentru ca sqlplus poate rula bine si update-urile sa dea fail. Trebuie ceva error handling dupa conectarea la DB.

Pentru inlantuire m-am gandit la triggere, testate pe https://www.programi...line-compiler/. Chestia e ca toate cele 3 modificari sunt facute abia la al doilea run, nu inteleg de ce.


UPDATE Customers SET first_name="Jeff" WHERE customer_id = 1;
CREATE TRIGGER nume_trigger
AFTER
UPDATE
ON
Customers
FOR EACH ROW
BEGIN
UPDATE Orders SET item = "Keyboard" WHERE order_id = 1;
END;


CREATE TRIGGER nume_trigger2
AFTER
UPDATE
ON
Orders
FOR EACH ROW
BEGIN
UPDATE Shippings SET status = "PENDING" WHERE shipping_id = 1;
END;



Cum as putea sa fac sa primesc mail daca pica unul dintre update-uri?

Mii de multumiri!

Edited by DrLexic, 20 February 2024 - 18:16.


#2
robert23mg

robert23mg

    Member

  • Grup: Members
  • Posts: 542
  • Înscris: 18.06.2017
Vezi poate te ajuta ce zic baietii astia pe aici.
https://stackoverflo...m-shell-scripts

#3
darkangel2

darkangel2

    Senior Member

  • Grup: Senior Members
  • Posts: 3,354
  • Înscris: 26.01.2019
Nu iese cu exit code diferit de zero nici daca scrii in scriptul SQL:
- WHENEVER SQLERROR EXIT SQL.SQLCODE
- WHENEVER OSERROR EXIT
?

#4
radu103

radu103

    Guru Member

  • Grup: Senior Members
  • Posts: 12,431
  • Înscris: 15.11.2003
eu as face o procedura care se ruleaza la primul trigger si-atat

#5
cralin

cralin

    Member

  • Grup: Members
  • Posts: 664
  • Înscris: 18.09.2020
Daca il lasi pe Flyway sa aplice pentru tine scripturile alea, nu numai ca nu trebuie sa te ocupi sa faci script-uri bash care sa verifice daca au foost sau nu executate cu success SQL-urile ci Flyway le aplica in ordine, iti garanteaza ca nu executa acelasi fisier .sql de doua ori pe aceeasi baza de date si se opreste imediat daca executia unuia din ele da fail.

Eg.
  1-> success, 2 -> fail, 3 nu mai este executat

La urmatorul run deja stie ca 1 a fost executat cu success, incepe cu 2 si il executa pe 3 doar daca 2 a fost executat cu succes.

Edited by cralin, 20 February 2024 - 20:07.


#6
trac1

trac1

    Junior Member

  • Grup: Members
  • Posts: 97
  • Înscris: 24.02.2008
Daca nu sunt mari scripturile de sql, le poti rula direct din scriptul de bash linie cu linie. Asa ai putea sa prinzi outputul fiecare linii intr-o variabila.
Cu un grep poti testa apoi contentul variabile daca va contine "error" sau orice cod de eroare da linia de sql(in oracle sql primesti si niste coduri). Daca testul de eroare este pozitiv poti baga un exit in script.
Nu mai stiu daca rulezi outputul scriptului de sql, sa poti prinde outputul in scriptul de bash. Daca merge aplici acelasi principiu de mai sus(nu am avut nevoie sa rulez mai mult de un select sau un update de 1 linie intr-un db sql de vreo 3 ani asa ca am cam uitat).
De curiozitate de ce nu folosesti python sau powershell core. Cred ca amandoua au module de conectare si management db-uri si poti face management de erori foarte usor.

#7
sorin147

sorin147

    Senior Member

  • Grup: Senior Members
  • Posts: 6,351
  • Înscris: 11.08.2003
sqlplus inseamna Oracle, nu?
Oracle are PLSQL, numa' bun pentru ce-ti trebuie tie.

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate