Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Schimbare bec far VW Touran 1T3

Ce parere aveti de viteza/ modul ...

Love Lies Bleeding - 2024

Cum sterg mails din Promotions
 Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Donez medicamente renale ptr pisica

Ce componenta e asta si ce ziceti...
 Dupa 20 ani de facultate, am uita...

Mobile.de ofera imprumut de bani ...

problema test grila

Digi24 a disparut de pe TV Lg
 Drept de proprietate intelectuala...

Jante noi shitbox

Trinitas TV 4K

Dacia 1316 cu 6 usi ...
 

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: 549
  • Î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,378
  • Î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,463
  • Înscris: 15.11.2003
eu as face o procedura care se ruleaza la primul trigger si-atat

#5
cralin

cralin

    Member

  • Grup: Members
  • Posts: 667
  • Î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: 107
  • Î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,368
  • Înscris: 11.08.2003
sqlplus inseamna Oracle, nu?
Oracle are PLSQL, numa' bun pentru ce-ti trebuie tie.

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

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