Actualizar un blob con un sql dinámico

Estoy usando un
Prepare sqlsa
FROM :ls_sql;
EXECUTE SQLSA
USING :l_blob; con power builder 7 y oracle
Donde ls_sql es una cadena variable que se monta anteriormente de la siguiente forma:
ls_sql = "updateblob " + as_tabla + " set " + as_blob + " =? Where " + ls_claves
Donde as_tabla es el nombre de la tabla, as_blob es el nombre del campo blob y ls_claves son las claves primarias de la tabla.
La variable una vez construida queda de la forma "updateblob files set description =? Where idfile = 22"
Bueno el problema viene cuando me da error al ejecutarse, dice que esta mal montada y mi pregunta es, que es lo que estoy haciendo mal y si esto se puede hacer así o si hay otra forma mejor de hacerlo.

1 respuesta

Respuesta
1
Proba así:
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;
PREPARE SQLSA FROM :ls_sql;
OPEN DYNAMIC my_cursor USING :l_blob ;
FETCH my_cursor ;
CLOSE my_cursor ;
Hola, gracias por contestar tan rapido, mira, si uso esa sentencia, en el objeto de transacción que utilizo me sale el siguiente error:
"Mismatch between prepared number of substitution variables and execute parameters" cuando hace el open del cursor.
La tabla es un parámetro que me pasan, así que se puede decir que es conocida antes de hacer la llamada al cursor, pero no es siempre fija.
Yo creo que esto no se puede hacer con los blobs, por lo menos en esta version de power builder.
¿La tabla donde guardas los blobs es una tabla desconocida al momento de programar?
Si, la verdad es que para el manejo de los blobs pb tiene una sintaxis especial.
Otra cosa que se me ocurre que podes hacer es tener una función que reciba los nombres de las tablas y con un case resuelva la llamada de updateblob a la tabla correspondiente.
Esto sirve si no son demasiadas tablas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas