Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας.Ειμαι αρχαριος σχετικα με βασεις δεδομενων.Θελω να φτιαξω ενα trigger σε μια βαση στην oracle η οποια να βρισκει ποσα στοιχεια του πινακα εχουν μια συγκεκριμενη τιμη σε μια στηλη τους και να το αποθηκευω προσωρινα την ωρα που εκτελειται το trigger σε μια μεταβλητη number.Το θεμα μου ειναι οτι τρεχω αυτην την εντολη SELECT COUNT(1) FROM table WHERE table_Col=15 και μου εμφανιζει το αποτελεσμα αλλα ειναι σε μορφη πινακα και δεν μπορω να το καταχωρησω στην μεταβλητη.Υπαρχει καποιος τροπος που  μπορει να γινει αυτο;

Δημοσ.

Θα πρέπει να γράψεις κάτι της μορφής:

declare
   my_variable NUMBER;  -- Εδώ δηλώνεις τη μεταβλητή σου
begin
   select count(1) into my_variable  -- Πρέπει να ξέρεις τι κάνει το `select ... into` τότε μπορείς να το χρησιμοποιήσεις με μεταβλητές
       from table
       where table_Col=15;
   exception when no_data_found then  -- exception σε triggers/procedures καθώς εκεί που τρέχουν συνήθως δεν κοιτάει κανένας οπότε ότι περισσότερο ελέγχεις τόσο καλύτερα
       my_variable := 0;

   dbms_output.put_line(my_variable);  -- Για να σου εκτυπώσει την μεταβλητή σου  
end;
Δημοσ.

Δεν θα δουλέψει ; :

UPDATE MyTable

SET MyCountField = (SELECT COUNT(1) FROM MyOtherTable WHERE MyOtherTable.MyOtherField=15)

 

Εκτός κι αν κάτι το κατάλαβα λάθος.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...