2011-09-07 5 views
0

Je réussis à migrer mysql vers Oracle. Mais le seul problème est sensible à la casse sur le nom de la table et le nom de domaine.Certaines pages dans le web dit aller aux outils et option dans le développeur sql et cocher l'ansi mais je ne peux pas le trouver. Sur le forum du site oracle a déclaré qu'il fait partie de la migration. Quelqu'un avait une nouvelle version de sql developer et migrait depuis mysql?sql développeur mysql à la migration oracle

par exemple

calendarColor devenir CALENDARCOLOR

+0

S'il vous plaît nous montrer les instructions SQL ** réelles ** que vous exécutez. Idéalement afficher utiliser l'instruction CREATE TABLE aussi (il suffit de copier cette table CREATE à partir de SQL Developer il est affiché) –

+0

'PROMPT Création de table calendarcolor ... CREATE TABLE calendarcolor ( calendarColorId NUMBER (10,0) NOT NULL ); PROMPT Création contrainte de clé primaire PRIMARY_3 sur la table calendarcolor ... ALTER TABLE calendarcolor ADD CONTRAINTE PRIMARY_3 PRIMARY KEY ( calendarColorId ) PERMETTRE , ' –

+0

semblent générer le code est pas Majuscules bizarre .. dois vérifier en arrière sur le code généré –

Répondre

1

Je ne vois vraiment pas comment cela est un problème. Étant donné que les objets d'Oracle sont insensibles à la casse par défaut, vous pouvez continuer à les interroger à l'aide de SELECT * FROM calendarColor.

Si vous besoin eux pour être sensible à la casse, utilisez des guillemets, comme:

CREATE TABLE "calendarColor" (...); 

SELECT * FROM TABLE "calendarColor"; 

Voir aussi: Schema Object Names and Qualifiers

+0

[quote] Erreur lors du démarrage à la ligne 1 en commande: select * from "calendarColor" Erreur à la ligne de commande: 1 Colonne: 14 rapport Erreur: erreur SQL: ORA-00942: table ou vue n'existe pas 00942.00000 - "la table ou la vue n'existe pas" * Cause: * Action: [/ quote] –

+0

Si vous avez créé la table sans utiliser de guillemets (ie: insensible à la casse), vous devez * vous y référer sans les guillemets (ou si vous utilisez des guillemets, utilisez toutes les majuscules). Veuillez également ne pas utiliser [BBCode] (http://stackoverflow.com/questions/3788959/regex-to-split-bbcode-into-pieces/3792262#3792262) ici. C'est fugace et SO ne le supporte pas. – NullUserException

+0

hmm .. je ne génère pas le code. il génère par développeur sql .. Hmm .. semble que vous ne l'avez pas utilisé .. mieux ne pas répondre ... –

1

Si la table a été créée à l'aide

CREATE TABLE calendarcolor (calendarColorId NUMBER(10,0) NOT NULL); 

alors la Le nom de la table est stocké en majuscules en interne. Lorsque vous exécutez une instruction comme ceci:

select * from "calendarColor" 

vous dites Oracle: Le nom de la table doit être traitée sensible à la casse mais comme il n'y a pas table nommée calenderColor, un seul nom CALENDARCOLOR votre déclaration échoue.

Le correctif est très simple: supprimer les guillemets et modifier la sélection pour

select * from calendarColor 
+0

Ici, avoir un upvote pour mieux l'expliquer que je l'ai fait – NullUserException