Bonjour à tous,
Voilà j'aimerais savoir comment passer des paramètres à une procédure stockée dans sql plus (ma base de données: oracle 10g). Sur MS SQL j'utilise le @ mais il semble que ce caractère ne soit pas bien interpreté avec oracle.
Merci
Version imprimable
Bonjour à tous,
Voilà j'aimerais savoir comment passer des paramètres à une procédure stockée dans sql plus (ma base de données: oracle 10g). Sur MS SQL j'utilise le @ mais il semble que ce caractère ne soit pas bien interpreté avec oracle.
Merci
Que veux tu faire exactement ? Appel de fonctions dans une Requête SQL ? Execution de procédure ?
(preciser)
exécution de procédure
Code:
1
2
3
4 Sql>exec toto(:mon_param1,:mon_param2); Sql> exec toto ('tata',2,sysdate);
merci pour ta réponse,
j'ai toujours une erreur quime dit qu'il rencontre des symboles create alors qu'il doit recevoir un begin etc.
voici ma requête en MS SQL:
Une idée pour la modifier et l'executer?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 create procedure sp_asb_whatsnewsincedate (@nodeid int, @startdate datetime) as /* What's New since [date] (Today, This Week, This Month) within [project] */ create table #t1 (DataID int) create table #t2 (DataID int) create table #t3 (DataID int) insert into #t1 (DataID) values (@nodeid) while 0 < @@rowcount begin delete from #t3 insert into #t3 (DataID) (select DataID from #t1) insert into #t2 (DataID) (select DataID from #t1) delete from #t1 insert into #t1 (DataID) (select D.DataID from DTree D JOIN #t3 T ON D.ParentID = T.DataID where D.SubType = 202) end SELECT D.*, V.Icon, V.MimeType, CONVERT(varchar,D.CreateDate,103)+ ' ' + CONVERT(varchar,D.CreateDate,108) AS Created, CONVERT(varchar,V.VerCDate,103) + ' ' + CONVERT(varchar,V.VerCDate,108) AS Updated FROM (DTree D JOIN #t2 T ON D.OwnerID = T.DataID) LEFT OUTER JOIN DVersData V ON D.DataID = V.DocID AND D.VersionNum = V.Version WHERE D.SubType IN (4,128,130,134,140,144,208,215,2002,2070,2103,2107,2108,2112,2117,2114) AND ((V.VerCDate > @startdate AND V.Version = D.VersionNum) OR (D.CreateDate > @startdate AND V.Version IS NULL)) ORDER BY D.ModifyDate DESC, D.CreateDate DESC drop table #t1 drop table #t2 drop table #t3
Merci
Ca :
n'est ni du SQL ni du PL/SQL !Citation:
while 0 < @@rowcount
begin
DELETE FROM #t3
INSERT INTO #t3 (DataID) (select DataID from #t1)
INSERT INTO #t2 (DataID) (select DataID from #t1)
DELETE FROM #t1
INSERT INTO #t1 (DataID) (select D.DataID from DTree D JOIN #t3 T ON D.ParentID = T.DataID where D.SubType = 202)
end
Et tout le reste non plus (tu ne peux pas creer une table dans une procedure par 'CREATE....')
Tu devrais d'abord chercher la
:tutoriel:
ou consulter la
:faq:
bizarre car ca marche parfaitement sur SQL SERVER
Oui, mais tu es dans un forum ORACLE :roll: !
Techniquement parlant si avec du SQL dynamique ;)Citation:
Envoyé par Garuda
Corrigez-moi si je me trompe :)
++
c'est du transact sql, pas du pl sql.Citation:
Envoyé par dumser1
ce n'est pas du sql (vaguement normalisé).
Les langages proceduraux ajoutés par les éditeurs (transact, pl) ne sont pas du tout normalisés.
Tu es en quelque sorte en train de lancer du code visual Basic via une JVM et en effet, cela ne marche pas.