none
TRUNC a mitabla en servidor vinculado RRS feed

  • Pregunta

  • Tengo un servidor vinculado Orale 11g, periódicamente necesito borrar una tabla y subir datos nuevos, intento algo como esto:

    SELECT * FROM OPENQUERY(elvinculado,'TRUNCATE TABLE elowner.mitabla ')

    y me devuelve No se puede procesar el objeto "elownerL.mitabla". El proveedor OLE DB "MSDAORA" del servidor vinculado "elvinculado" indica que el objeto no tiene columnas o el usuario actual no tiene permisos en ese objeto.

    Lo mismo si uso algo como esto:

    SELECT * FROM OPENQUERY(elvinculado,'DELETE FROM elowner.mitabla')

    Lo obvio sería decir que no tengo permisos, pero entro con Oracle Sql Developer con ese mismo usuario y si puedo usar TRUNCATE pero no DELETE.

    Alguna idea?

    Estoy escribiendo mal algo?

    miércoles, 24 de octubre de 2018 14:41

Todas las respuestas

  • Lo obvio sería decir que no tengo permisos, pero entro con Oracle Sql Developer con ese mismo usuario y si puedo

    No es suficientemente indicativo el hecho de que entrando directamente en Oracle el usuario tenga permisos. Tienes que revisar como esta configurado el Linked Server, porque a lo mejor no esta pasando las credenciales del usuario conectado sino que tiene una cuenta fija, y puede que esa cuenta no tenga permisos.
    miércoles, 24 de octubre de 2018 16:09
  • el linked server está configurado con el usuario de oracle que tiene los permisos, incluso puse la cadena "textualmente" 

    :S

    miércoles, 24 de octubre de 2018 16:56
  • Hola Alex Crunch:

    Hace un tiempo que no toco esa tecla, pero si mal no recuerdo, en Oracle, por defecto no puedes ejecutar un delete from propietario.tabla, tienes que ser explicito con las filas.

    delete openquery (elvinculado,
    ‘select * from propietario.tabla where id>1;’)

    Un saludo

    miércoles, 24 de octubre de 2018 17:42