2016-12-26 5 views
0

Il y a quelques années, ma table Oracle appelée SAMPLE a cessé d'accepter les commandes de mise à jour ou d'insertion. J'ai finalement trouvé que si je renommais la table tout fonctionnerait, il semblerait donc que SAMPLE soit un mot protégé, mais je ne le vois pas sur les listes de mots réservés ou protégés d'Oracle. Toute lumière à ce sujet serait appréciée.La table Oracle SAMPLE ne se met plus à jour

+3

'sample' est un mot-clé, mais pas réservé. Vous pouvez créer une table nommée SAMPLE. Au lieu d'afficher 'arrêté d'accepter la mise à jour ou insérer des commandes. 'Message d'erreur s'il y en a. Qu'est-ce que «arrêter d'accepter» signifie exactement? –

+0

Oui, bon point, merci. Erreur (à partir de .Net) était "" La génération de SQL dynamique a échoué. Soit aucune table de base n'a été trouvée, soit plus d'une table de base a été trouvée. "L'appel réel était: adapter.Update (dataRows); chose étrange: cette table SAMPLE a fonctionné correctement pendant 12 ans et fonctionne toujours aujourd'hui, mais a cessé de fonctionner pour l'adaptateur Les appels .Update (mais pourraient être remplis en SQL direct.) Je devrais probablement faire un extrait de code, mais cela pourrait prendre un moment avant que je puisse libérer la table – beanmf

+0

Cela ressemble plus à un problème avec votre processus que la table réelle. Pourquoi générez-vous du SQL dynamique? Vous devez expliquer * beaucoup plus * ce que vous faites (et pourquoi). – APC

Répondre

1

Nous pouvons voir tous les mots-clés pour notre version d'Oracle en interrogeant la vue v$reserved_words:

SQL> select * from v$reserved_words rw 
    2 where rw.keyword = 'SAMPLE' 
    3/

KEYWORD       LENGTH R R R R D 
------------------------------ ---------- - - - - - 
SAMPLE         6 N N N N N 

SQL> 

Cela nous dit que « échantillon » est un mot-clé, mais pas réservée dans un contexte. Nous sommes donc autorisés à créer des objets appelés SAMPLE. Find out more.