Bonjour,

Croyez-vous que les requêtes dinamiques (voir le code ci-dessous sur SQL) correspondent au DBMS_SQL.OPEN_CURSOR d'Oracle ?

declare @req varchar(2000)
if exists(select 1 from sysobjects where name = 'MaTable' and type = 'U' )
begin
set @req = 'truncate table MaTable'
exec(@req)
end
else

create
table MaTable
( var1 int not null, nomvar1 varchar(12) null,
var2 int null, nomvar2 varchar(12) null,
var3 int null, nomvar3 varchar(12) null,
var4 float not null, var5 float not null );



Pour rappel, le code Oracle original est :

BEGIN
DECLARE
cid number \;
num_test number \;
BEGIN

SELECT COUNT(*) INTO num_test FROM user_tables WHERE RTRIM(table_name) = UPPER('MaTable') \;
IF num_test = 1 THEN
cid := DBMS_SQL.OPEN_CURSOR \;
DBMS_SQL.PARSE(cid, 'DROP TABLE MaTable', DBMS_SQL.NATIVE) \;
DBMS_SQL.CLOSE_CURSOR(cid) \;
END IF \;

END \;
END \; ;

create
table MaTable
( var1 number not null, nomvar1 varchar2(12) null,
var2 number null, nomvar2 varchar2(12) null,
var3 number null, nomvar3 varchar2(12) null,
var4 number(37,16) not null, var5 number(37,16) not null );


Merci pour votre aide !