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

SQL Oracle Discussion :

Datatype bigint n'est accepté par oracle


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut Datatype bigint n'est accepté par oracle
    Salut,

    j'ai un script pour créer une table dans une base de données oracle.
    Une colonne de cette table est de type bigint.

    Quand j'execute ce script j'ai ce message d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ORA-00902: invalid datatype
    merci d'avance pour votre aide.

  2. #2
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    ORacle n'a pas de type 'BIGINT'... L'équivalent est NUMBER(19, 0)
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut
    Merci bien pour ta réponse.

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut
    En fait j'ai tout un script didié à la création des tables dans une base de données oracle.
    Il est plein de bigint,bit et varbinary comme datatype.

    La personne qui a fait ce script m'a confirmé que ce script fonctionne bien sous oracle.

  5. #5
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Citation Envoyé par yous123 Voir le message
    En fait j'ai tout un script didié à la création des tables dans une base de données oracle.
    Il est plein de bigint,bit et varbinary comme datatype.

    La personne qui a fait ce script m'a confirmé que ce script fonctionne bien sous oracle.
    Bonjour,

    La personne peut confirmer ce qu'elle veut , tu peux t'appuyer sur la doc officielle d'oracle sur les DATATYPES

    http://download.oracle.com/docs/cd/B...001.htm#i54330

    et sur ton message d'erreur pour infirmer cela !

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par yous123 Voir le message
    La personne qui a fait ce script m'a confirmé que ce script fonctionne bien sous oracle.
    Il a menti

  7. #7
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Citation Envoyé par orafrance Voir le message
    Il a menti
    par contre moi, je mens jamais (sauf des fois par ommission )
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut
    Merci pour vos réponse.
    J'ai changé les datatypes suivants:

    varbinary par binary.

    bit par number(1)

    bingint par number(19,0).

    mé quand j'execute le script ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    create table IM (
       id varchar(32) not null,
       messageId varchar(255),
       state integer,
       senderUserId varchar(255),
       targetUserId varchar(255),
       destinationUserId varchar(255),
       expiryTime NUMBER(19,0),
       creationTime NUMBER(19,0),
       deliveryReport NUMBER(1),
       messageContentAndInfo binary(1024),
       primary key (id)
    );
    j'ai ce message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ORA-00907: missing right parenthesis
    mé quand j'enlève
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    messageContentAndInfo binary(1024),
    le script est executé.

  9. #9
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Mais il y a deja un post au dessus vers le site officiel d'oracle sur les DATATYPE

    ca ne veut rien dire BINARY pour Oracle !!!!

    varchar => varchar2 !!!

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    SQL> create table tab_1 (col1 binary(1024));
    create table tab_1 (col1 binary(1024))
                                   *
    ERROR at line 1:
    ORA-00907: missing right parenthesis
     
     
    SQL> create table tab_2 (col1 BLABLA2(1024));
    create table tab_2 (col1 BLABLA2(1024))
                                    *
    ERROR at line 1:
    ORA-00907: missing right parenthesis
     
    SQL> create table tab_1 (col1 varchar2(1024));
     
    Table created.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 192
    Par défaut mais pourquoi est-il si méchant
    c'est bien dommage que le datatype BIGINT n'existe pas...

    paske d'abord, si je n'm'amuse, et qu'si qu'on prend 999999999999999999, alors sa représentation en binaire pour un BIGINT est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0000 1101 1110 0000 1011 0110 1011 0011 1010 0111 0110 0011 1111 1111 1111 1111 1111
    alors qu'en NUMBER(19,0) c'est plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0000 1001 0000 1001 0000 1001 0000 1001 0000 1001 0000 1001 0000 1001 0000 1001 0000 1001 0000 1001 0000 1001 0000 1001 0000 1001 0000 1001 0000 1001 0000 1001 0000 1001 0000 1001
    wouala toutidi...

    fisé donc un index là-dissus

  11. #11
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Tu t'amuses je pense

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DECLARE
     v number;
     dmp varchar2(255);
    BEGIN
    	v := 99999999999999999;
    	SELECT DUMP(v) INTO dmp FROM dual;
      DBMS_OUTPUT.put_line(dmp);
    END;
     
    Typ=2 Len=10: 201,100,100,100,100,100,100,100,100,100
    Soit en binaire : 1100 1001 [0110 0100]x9
    et pas comme tu dis : 0000 [1001 0000]x16 1001

    Sinon pour en revenir au poste principal : Changer les datatypes comme ça peut avoir une incidence suivant le programme.
    Il y a une différence entre bit [valeur 0 ou 1] et number(1) [valeur -9 à +9]
    Si jamais des conversions sont faites avec des trunc implicites, ou des gestions d'erreur overflow.. Bref faut revoir le code et mettre les bons datatypes

Discussions similaires

  1. Table DUAL n'est pas connue par Oracle
    Par HANNIBAL_CARTHAGE dans le forum Oracle
    Réponses: 2
    Dernier message: 02/06/2015, 16h24
  2. Le moratoire sur le langage Python est accepté par le PEP
    Par Gordon Fowler dans le forum Général Python
    Réponses: 5
    Dernier message: 16/11/2009, 12h58
  3. Le moratoire sur le langage Python est accepté par le PEP
    Par Gordon Fowler dans le forum Actualités
    Réponses: 2
    Dernier message: 25/10/2009, 00h24
  4. Réponses: 0
    Dernier message: 28/02/2008, 15h43
  5. Réponses: 1
    Dernier message: 17/10/2006, 15h05

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