Maison  >  Article  >  base de données  >  Que faire si une erreur ora-12899 se produit dans la base de données Oracle

Que faire si une erreur ora-12899 se produit dans la base de données Oracle

小云云
小云云original
2017-12-11 14:54:173823parcourir

Au cours du processus d'utilisation d'ORACLE, divers problèmes et erreurs se produiront. Parmi eux, ORA-12899 est le problème qui n'arrêtait pas d'apparaître lorsque j'ai importé des données sur ma machine locale il y a quelque temps. Mais heureusement, ce problème a été résolu. Maintenant, je vais le partager, en espérant aider tout le monde.

ORA-12899 apparaît, ce qui est dû au jeu de caractères. Le chinois occupe 3 octets en UTF-8 et 2 octets en ZHS16GBK. Le jeu de caractères du fichier dmp source est extrait de la bibliothèque ZHS16GBK. est maintenant importé dans une bibliothèque dont le jeu de caractères cible est UTF-8, donc ORA-12899 apparaîtra

En fait, ce problème peut être bien résolu en modifiant le jeu de caractères ORACLE ;

Mais lors de la modification du jeu de caractères, j'ai constaté que j'avais oublié le mot de passe du compte sys, ce qui était tragique, j'ai donc dû d'abord changer le mot de passe de l'utilisateur sys

Changer le mot de passe Il existe plusieurs situations. , et je les listerai un par un ci-dessous :

1. J'ai oublié le mot de passe de connexion des utilisateurs autres que les utilisateurs SYS et SYSTEM.

Connectez-vous en tant qu'utilisateur SYS (ou SYSTEM).

CONN SYS/PASS_WORD AS SYSDBA;

Utilisez l'instruction suivante pour modifier le mot de passe de l'utilisateur.

ALTER USER user_name IDENTIFIED BY newpass;

Remarque : Le mot de passe ne peut pas être composé uniquement de chiffres. Et cela ne peut pas commencer par un chiffre. Sinon : ORA-00988 : Le mot de passe est manquant ou invalide

2. J'ai oublié le mot de passe de l'utilisateur SYS ou de l'utilisateur SYSTEM.

Si vous oubliez le mot de passe de l'utilisateur SYSTEM, vous pouvez vous connecter avec l'utilisateur SYS. Utilisez ensuite le mot de passe ALTER USER

pour changer le mot de passe.

CONN SYS//PASS_WORD AS SYSDBA; 
ALTER USER SYSTEM IDENTIFIED BY newpass;

Si vous oubliez le mot de passe de l'utilisateur SYS, vous pouvez vous connecter en tant qu'utilisateur SYSTEM. Utilisez ensuite le mot de passe ALTER USER

pour changer le mot de passe.

CONN SYSTEM//PASS_WORD ; 
ALTER USER SYSTEM IDENTIFIED BY newpass;

3. Si les mots de passe des utilisateurs SYS et SYSTEM sont oubliés ou perdus.

Celui-ci est particulièrement important.

Vous pouvez utiliser l'outil ORAPWD.EXE pour changer le mot de passe.

Menu Démarrer->Exécuter->Entrez 'CMD', ouvrez la fenêtre d'invite de commande, entrez la commande suivante :

orapwd file=D:/oracle/product/10.2.0/db_1/database/pwdctcsys.ora 
password=newpass

Cette commande régénère le fichier de mot de passe de la base de données. L'emplacement du fichier de mots de passe se trouve dans le répertoire /database de
dans le répertoire ORACLE_HOME.

Ce mot de passe sert à changer le mot de passe de l'utilisateur système. Les mots de passe des autres utilisateurs, à l'exception de sys et system, ne seront pas modifiés.

Après avoir modifié le mot de passe, vous pouvez apporter des modifications en tant que dba. Si vous n'êtes pas un dba, vous serez invité à indiquer des autorisations insuffisantes lors de l'exécution de la commande de modification.

Démarrer-. ->Exécutez -->cmd, puis saisissez : "sqlplus sys/oracle@192.168.0.1/orcl as SYSDBA"

Si vous ne pouvez pas saisir normalement, vous devez saisir manuellement le nom d'utilisateur et le mot de passe. Après la saisie, l'invite "SQL>" apparaîtra. Suivez les instructions ci-dessous. Exécutez simplement les commandes dans l'ordre

SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP MOUNT
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK ;
ALTER DATABASE CHARACTER SET ZHS16GBK
*ERROR at line 1:
ORA-12712: new character set must be a superset of old character set

signale que le jeu de caractères est incompatible. La commande ne vérifie pas le surensemble du jeu de caractères :

SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP

À l'heure actuelle, cet ORA-12899 a été complètement résolu et les données peuvent être importées. ..

PS : Laissez-moi vous ajouter quelque chose : À quoi sert le fichier *.ora dans Oracle ?

Pourquoi n'y a-t-il pas de fichier *.ora en 10g ?

Est-ce que *.ora en 9i est égal à *.dbf en 10g ?

Lors de la création d'une table a8da73ae7924bc0166fb7e2b785e4751空间5db79b134e9f6b82c0b36e0489ee08ed

DATAFILE est utilisé pour spécifier l'emplacement et la taille spécifiques du fichier de données. Mais j'ai vu que certains articles utilisent des fichiers

*.ora, comme DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M , et certains

utilisent des fichiers *.dbf, comme DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.dbf' SIZE 5M .

Le dicton en ligne est fichier .dbf-data, fichier .tmp-temporary, fichier journal .log-redo (fichier journal redo), fichier .ctl-control

. -fichier de paramètres, fichier système .dat-Oracle

identifie simplement le type de fichier grâce à l'extension Pour les fichiers de données, qu'ils soient ora/dat/dbf, ce sont les mêmes, il n'y a pas de différence. . Personnellement, je le pense aussi. Je me demande quelles sont les opinions de chacun ?

Recommandations associées :

Comment Oracle modifie l'emplacement du fichier de données de l'espace table

La base de données MySQL et Oracle s'arrête et start Comment résoudre le problème de sauvegarde du champ Oracle Clob trop long dans le fichier batch

?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn