IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Table inaccessible en insert/update via code C#


Sujet :

Oracle

  1. #1
    Membre averti Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Points : 346
    Points
    346
    Par défaut Table inaccessible en insert/update via code C#
    Bonjour à tous

    J'ai déjà crée une discussion sur mon problème
    http://www.developpez.net/forums/d11...e/#post6550187

    D'habitude j'arrive à trouver ce que je cherche sur google mais comme vous pouvez le voir dans la discussion je n'ai rien sur quoi me baser pour faire mes recherches, ni erreur ni résultat.

    En résumé, j'ai demandé la création d'une table sous oracle.
    Elle a était crée hier. Et mes insert via visual studio (en c#) ne marche pas.
    J'établis une connexion en ADMIN pour y accéder.
    (Quand je fait des insert sur une autre table de la même base ça passe ce qui me fait dire que ça ne vient pas du code.)

    Ce qu'il y a de plus troublant c'est que les mêmes insert passent quand je les exécutent sur SQL DEVELOPER ORACLE.

    Es-ce que vous savez comment faire pour donner des droits d'écriture sur une table quand on l'attaque de l’extérieur ?

  2. #2
    Membre chevronné
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Points : 1 878
    Points
    1 878
    Par défaut
    Il est troublant que tu n'aies pas d'erreur en retour.

    Si tu arrives à exécuter la requête sur une table de la même base cela semble indiquer des problèmes de droits.

    Mais dans ce cas, je ne vois pas pourquoi tu y arrives via SQLDevelopper en étant connecté sur le même utilisateur...



    PS : Je ne connais pas de droits spécifiques pour autoriser l'accès/l'écriture à partir d'une appli tierce mis à part le GRANT "classique"

  3. #3
    Membre averti Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Points : 346
    Points
    346
    Par défaut
    Je suis en train de faire les diff entre la table qui marche et la table qui ne marche pas.

    Dans les Details d'sqldeveloper

    TABLE_OK
    AVG_ROW_LEN 112
    AVG_SPACE_FREELIST_BLOCKS 0
    NUM_FREELIST_BLOCKS 0
    SAMPLE_SIZE 0
    GLOBAL_STATS YES

    TABLE_ERREUR
    AVG_ROW_LEN (null)
    AVG_SPACE_FREELIST_BLOCKS (null)
    NUM_FREELIST_BLOCKS (null)
    SAMPLE_SIZE (null)
    GLOBAL_STATS NO

    Sont les seules diff.
    J'ai trouvé ça, mais comme je début en oracle ça me parle pas vraiment.
    http://oracle.developpez.com/faq/?page=4-1


    L'autre solution ça peut être l'encodage. J'utilise Unicode pour me connecter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Data Source=re7TAB.fr;User ID=ADMIN;Password=admin;Unicode=True
    Mais là non plus ne connaissant toujours pas Oracle, je ne sait pas si l'encodage porte sur la base en entier ou sur chaque table, et je ne sais pas comment obtenir le charset.

    Enfin troisième piste. La nouvelle table contiens des types de variables incompatible avec la version d'oracle.


    Je sais, ça fait beaucoup de question.


    La table n'a pas étais crée par mon DBA qui est en congé.

  4. #4
    Membre chevronné
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Points : 1 878
    Points
    1 878
    Par défaut
    Ta table semble n'avoir jamais été analysée. Elle est vide ?

    Sinon tu peux contrôler le jeu de caractères utilisé par Oracle via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from v$nls_parameters
    C'est quoi le type de données non-supporté par Oracle ?
    Tu es en quelle version Oracle ?

    Pour confirmer/infirmer le pb d'encodage tu peux aussi créer ta table pas-à-pas pour isoler l'élément qui pose problème

    Ex :
    1- Créer la table juste avec la PK et test INSERT
    2- Ajout d'une colonne et test
    etc...

  5. #5
    Membre averti Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Points : 346
    Points
    346
    Par défaut
    Oui la table est vide.

    Voila le résultat du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM v$nls_parameters
    NLS_CHARACTERSET WE8MSWIN1252

    "C'est quoi le type de données non-supporté par Oracle ?"
    Je ne sais pas.
    "Tu es en quelle version Oracle ?"
    ORACLE IDE 1.2.1.3213 (je croix que c'est ça.)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pour confirmer/infirmer le pb d'encodage tu peux aussi créer ta table pas-à-pas pour isoler l'élément qui pose problème
    Très bonne idée. Je pense que je vais devoir m'initier à la création de table.

  6. #6
    Membre chevronné
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Points : 1 878
    Points
    1 878
    Par défaut
    Tu trouveras tout ce qu'il te faut sur dvp

    Bon courage, mais à ce stade je ne vois pas comment débloquer la situation autrement

  7. #7
    Membre averti Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Points : 346
    Points
    346
    Par défaut
    Ce matin je recrée les tables.

    Je fait les insert et tout marche.
    Je veux effacer mes cas de testes avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    delete from docu1;
    Et , ça ne marche plus.

    En remplaçant par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TRUNCATE TABLE docu1;
    ça marche mieux.


    Le problème c'est que celui qui m'a crée les tables a du faire des tests et les effacer en faisant un delete, comme moi.


    Je mets la discussion en résolu mais je veux bien qu'on m'explique pourquoi le delete me fait planter. C'est une histoire de commit ou quelque chose du genre ?

    PS : un grand merci Scriuiw

  8. #8
    Membre chevronné
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Points : 1 878
    Points
    1 878
    Par défaut
    Le DELETE est sujet au COMMIT/ROLLBACK contraitement au TRUNCATE .
    Par contre le TRUNCATE n'accepte pas de clause donc c'est tout ou rien et c'est irréversible.

    Comment as-tu fait au niveau de tes INSERTS ?
    Tu as un COMMIT en fin d'instruction ou il est implicite à la fermeture de la session ?

    PS : Et en te connectant via SQL+ ou SQLDeveloper le DELETE passe ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/04/2011, 09h32
  2. Réponses: 2
    Dernier message: 17/06/2008, 00h42
  3. Réponses: 5
    Dernier message: 03/08/2006, 17h13
  4. insert/update très massifs dans table de 50 M de record.
    Par nuggets dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 25/07/2006, 17h41
  5. INSERT/UPDATE via DBLink
    Par Wilk dans le forum Oracle
    Réponses: 1
    Dernier message: 15/03/2006, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo