C# Conexion a oracle error invalid character

miltonfre

Lanero Regular
29 Dic 2005
92
Señores, buenas tardes,


Tengo un problema al tratar de ejecutar un script Oracle desde c#, con el siguiente código, al llegar al ExecuteNonQuery aparece el error ORA-00911: invalid character, he consultado muchisimo, pero de las distintas opciones que dan en la web, ninguna apunta a la solución que necesito, en sqlTools y sqlPlus el script funciona de manera correcta, si alguien tiene la solución muchas gracias.

El código a ejecutar es el siguiente:

public void EjecutarScriptORA(String strSQL)
{
try
{
string connectionString = ObjetoInstalar.ConnectionString;
using (OracleConnection connection = new OracleConnection(connectionString))
{
connection.Open();
OracleCommand cmd = new OracleCommand();
cmd.CommandText = strSQL;
cmd.Connection = connection;
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();

}
}
catch (Exception ex)
{

}
}

y el script es:
DROP TABLE TMPAtributos;
/*Crea la tabla temporal*/
CREATE GLOBAL TEMPORARY TABLE TMPAtributos
(
Nombre VARCHAR2(50) NOT NULL,
Input VARCHAR2(75),
Label VARCHAR2(75),
Rfv VARCHAR2(75),
Rev VARCHAR2(75)
) ;

DECLARE
tbl_exist PLS_INTEGER;
entidad_Exist PLS_INTEGER;
CantidadInserts PLS_INTEGER ;
L_NombreEntidad Varchar2(50);
L_input Varchar2(75);
L_label Varchar2(75);
L_rfv Varchar2(75);
L_rev Varchar2(75);
L_IdEntidad Entidades.IdEntidad%TYPE;

CURSOR CUR_TMPAtributos IS
SELECT DISTINCT Nombre,Input,Label,Rfv,Rev FROM TMPAtributos;

BEGIN
INSERT INTO TMPAtributos(Nombre,Input,Label,Rfv,Rev) Values ('UnidadDeMedida','txtSimbolo','lblSimbolo','RequiredFieldValidator1','revSimbolo');
--Aqui vienen muchisimos más INserts
OPEN CUR_TMPAtributos ;
LOOP
FETCH CUR_TMPAtributos
INTO L_NombreEntidad, L_input, L_label, L_rfv, L_rev;
EXIT WHEN CUR_TMPAtributos%NOTFOUND;


SELECT IdEntidad INTO L_IdEntidad
FROM Entidades
WHERE Nombre=L_NombreEntidad;


SELECT Count(IdEntidad) INTO entidad_Exist FROM Atributos
WHERE IdEntidad = L_IdEntidad
AND COALESCE(input,'NULL')= COALESCE(L_input ,'NULL')
AND COALESCE(Label,'NULL')= COALESCE(L_label ,'NULL')
AND COALESCE(Rfv,'NULL')= COALESCE(L_rfv ,'NULL')
AND RowNum< 2;



IF entidad_Exist <1 THEN
INSERT INTO Atributos (idAtributo,IdEntidad,input,label,rfv,rev )
VALUES (seq_Atributos.NEXTVAL,L_IdEntidad,L_input,L_label,L_rfv,L_rev);
CantidadInserts:=CantidadInserts+1;
END IF;


END LOOP;
DBMS_OUTPUT.PUT_line('Se Insertaron '|| CantidadInserts ||' Atributos') ;


SELECT COUNT(*) INTO tbl_exist FROM USER_TABLES WHERE TABLE_NAME=Upper('TMPAtributos') ;
IF tbl_exist >0 THEN
EXECUTE IMMEDIATE
'DROP TABLE TMPAtributos' ;
DBMS_OUTPUT.PUT_line('Se borra la tabla temporal') ;
END IF;




COMMIT;

END;