Page 1 of 1
Ερώτηση SQL
Posted: Tue Jun 07, 2005 2:04 pm
by nap
Έχω τον ακόλουθο κώδικα σε T-SQL του SQL Server, που τοποθετεί τη μέγιστη τιμή του πεδίου
field_name στη μεταβλητή
my_val:
Code: Select all
declare @my_var int
set @my_var = (select max(field_name) from table_name)
Ξέρει κανέις πώς θα κάνω το αντίστοιχο στην PL/SQL της Oracle8i; Το προφανές:
Code: Select all
declare
my_var int;
begin
my_var := (select max(field_name) from table_name)
end;
δεν δουλεύει...

Re: Ερώτηση SQL
Posted: Tue Jun 07, 2005 3:19 pm
by v@lkyrja
nap wrote:Έχω τον ακόλουθο κώδικα σε T-SQL του SQL Server, που τοποθετεί τη μέγιστη τιμή του πεδίου
field_name στη μεταβλητή
my_val:
Code: Select all
declare @my_var int
set @my_var = (select max(field_name) from table_name)
Ξέρει κανέις πώς θα κάνω το αντίστοιχο στην PL/SQL της Oracle8i; Το προφανές:
Code: Select all
declare
my_var int;
begin
my_var := (select max(field_name) from table_name)
end;
δεν δουλεύει...

παρακάτω θα βρεις ένα παράδειγμα για ένα procedure που έχω σε oracle9i. νομίζω ότι δεν θα έχεις προβλημα με την 8i.
αν θες μπορώ να σου στείλω και reference της PL/SQL...
procedure LockedByUser ( I_NId In wf_notifications.notification_id%type
, O_IsLocked Out varchar2
, O_User_Name Out varchar2
)
Is
l_username varchar2(30);
Begin
If Check_Lock(I_NId) then
O_IsLocked := bool2varchar2(true);
Select user_lock
Into l_username
From notif_locks
Where notification_id = I_NId;
O_User_Name := l_username;
Else
O_IsLocked := bool2varchar2(false);
O_User_Name := '';
End if;
End LockedByUser;
Posted: Tue Jun 07, 2005 3:25 pm
by nap
Ευχαριστώ. Το SELECT... INTO... δούλεψε μια χαρά στην 8i.
Posted: Tue Jun 07, 2005 3:31 pm
by v@lkyrja
ωραία

Posted: Wed Oct 12, 2005 8:42 pm
by ailouros
Η ερώτηση μου είναι απλή και εύκολη(αλλά εμένα μου την έχει σπάσει).
Έστω δύο πίνακες Α(κλειδί,στοιχείο) και Β(κλειδί,Στοιχείο) και ο πίνακας Α_τομή_Β(κλειδίΑ,κλειδίΒ) και ένας τέταρτος πίνακας ΑΒδεδομένα ο οποίος περιέχει διάφορες στήλες μεταξύ των οποίων και δύο στήλες Α,Β όπου κάτω από αυτές έχει αντιστοίχως στοιχείο Α,στοιχείο Β.
Θέλω:Διαβάζοντας τα στοιχεία Α και Β ανα πλειάδα(βλ.Γιαννακουδάκης) στον πίνακα ΑΒδεδομένα να γεμίζω τον Α_τομή_Β με τα κλειδιά των Α κ Β.
Ελπίζω να ήμουν κατανοητός!
Συγκεκριμένα το περιβάλλον είναι access.Ο λόγος που τα χω μπλέξει είναι ότι δοκίμασα να τα κάνω με query .Ποιό είναι λοιπόν το query σε SQL?
Ευχαριστώ!
Posted: Wed Oct 12, 2005 10:33 pm
by Ethel
To όλο concept όπως το κατάλαβα πρέπει να είναι ως εξής:
insert into AVB keyA, keyB values (select A.keyA from A where A.elementA=AB.elementA, select B.keyB from B where B.elementB=AB.elementB )
ελπίζω να παίζει κάτι τέτοιας μορφής.
Good luck!
Posted: Thu Oct 13, 2005 11:04 am
by ailouros
Ευχαριστώ,Τελικά δούλεψε με το εξής:
INSERT INTO Οικισμός_τμ_Εναλλακτικός ( Id_οικ, Id_οικ_εναλ )
SELECT Οικισμός.Id_οικ, Οικισμός_εναλλακτικός.Id_οικ_εναλ
FROM (oikismoi_data INNER JOIN Οικισμός_εναλλακτικός ON oikismoi_data.[Άλλο όνομα] = Οικισμός_εναλλακτικός.Τοπωνύμιο) INNER JOIN Οικισμός ON oikismoi_data.Οικισμός = Οικισμός.Τοπωνύμιο;