Probleme de syntaxe avec DB2 - SQL/NoSQL - Programmation
MarshPosté le 15-07-2003 à 18:55:51
L'interet du USE MERGE dans les bases de donnees c'est quoi exactement? (j'ai lu la doc mais en dehors de faire un jointure je vois pas trop ) Je suis sous DB2, j'ai un requetes super lente, un mec de Oracle me conseille le USE MERGE (avec une jointure en WHERE) contre ma solution (jointure en INNER JOIN) vous pensez que c'est plus performant? Parce que en terme de temps d'execution , ca change rien
deuxieme chose (je suis lourd je sais) mais autant faire un combo: je veux creer un table issu des resultat d'un select, le select fonctionne, pas la creation de la table, et je comprends pas le message d'erreur:
Citation :
CREATE TABLE FEDERATION.AFCS_LOCAL (SELECT AFCS_EXT_SWISSPROT.BULK_SWISSPROT_AC.ID_ENTRY_NAME, AFCS_EXT_SWISSPROT.BULK_SWISSPROT_AC.AC_NUMBER, AFCS_EXT_SWISSPROT.BULK_SWISSPROT.ID_SEQUENCE_LENGTH, AFCS_EXT_SWISSPROT.BULK_SWISSPROT.DE_DESCRIPTION, AFCS_EXT_SWISSPROT.BULK_SWISSPROT.GN_GENE_NAMES, AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OS_LATIN.OS_LATIN_NAME, AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OX.OX_TAXID FROM AFCS_EXT_SWISSPROT.BULK_SWISSPROT INNER JOIN AFCS_EXT_SWISSPROT.BULK_SWISSPROT_AC ON AFCS_EXT_SWISSPROT.BULK_SWISSPROT_AC.ID_ENTRY_NAME=AFCS_EXT_SWISSPROT.BULK_SWISSPROT.ID_ENTRY_NAME INNER JOIN AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OS_LATIN ON AFCS_EXT_SWISSPROT.BULK_SWISSPROT.ID_ENTRY_NAME=AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OS_LATIN.ID_ENTRY_NAME INNER JOIN AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OX ON AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OS_LATIN.ID_ENTRY_NAME=AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OX.ID_ENTRY_NAME) ,PRIMARY KEY(ID_ENTRY_NAME) IN REGTBL16K_TS LONG IN LARGE32K_TS INDEX IN REGIDX16K_TS
desole, c'est un peu long le message d'erreur de DB2:
DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL0104N An unexpected token "," was found following "ROT_AC.ID_ENTRY_NAME". Expected tokens may include: ".". SQLSTATE=42601
j'ai bien cherche la ou il donne l'erreur(en rouge dans le texte), pas de probleme, c'est dans le select, or il fonctionne
Marsh Posté le 15-07-2003 à 18:55:51
L'interet du USE MERGE dans les bases de donnees c'est quoi exactement? (j'ai lu la doc mais en dehors de faire un jointure je vois pas trop )
Je suis sous DB2, j'ai un requetes super lente, un mec de Oracle me conseille le USE MERGE (avec une jointure en WHERE) contre ma solution (jointure en INNER JOIN)
vous pensez que c'est plus performant?
Parce que en terme de temps d'execution , ca change rien
deuxieme chose (je suis lourd je sais) mais autant faire un combo:
je veux creer un table issu des resultat d'un select, le select fonctionne, pas la creation de la table, et je comprends pas le message d'erreur:
CREATE TABLE FEDERATION.AFCS_LOCAL
(SELECT AFCS_EXT_SWISSPROT.BULK_SWISSPROT_AC.ID_ENTRY_NAME,
AFCS_EXT_SWISSPROT.BULK_SWISSPROT_AC.AC_NUMBER,
AFCS_EXT_SWISSPROT.BULK_SWISSPROT.ID_SEQUENCE_LENGTH,
AFCS_EXT_SWISSPROT.BULK_SWISSPROT.DE_DESCRIPTION,
AFCS_EXT_SWISSPROT.BULK_SWISSPROT.GN_GENE_NAMES,
AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OS_LATIN.OS_LATIN_NAME,
AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OX.OX_TAXID
FROM AFCS_EXT_SWISSPROT.BULK_SWISSPROT INNER JOIN AFCS_EXT_SWISSPROT.BULK_SWISSPROT_AC
ON AFCS_EXT_SWISSPROT.BULK_SWISSPROT_AC.ID_ENTRY_NAME=AFCS_EXT_SWISSPROT.BULK_SWISSPROT.ID_ENTRY_NAME
INNER JOIN AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OS_LATIN
ON AFCS_EXT_SWISSPROT.BULK_SWISSPROT.ID_ENTRY_NAME=AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OS_LATIN.ID_ENTRY_NAME
INNER JOIN AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OX
ON AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OS_LATIN.ID_ENTRY_NAME=AFCS_EXT_SWISSPROT.BULK_SWISSPROT_OX.ID_ENTRY_NAME)
,PRIMARY KEY(ID_ENTRY_NAME)
IN REGTBL16K_TS LONG IN LARGE32K_TS INDEX IN REGIDX16K_TS
desole, c'est un peu long
le message d'erreur de DB2:
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0104N An unexpected token "," was found following "ROT_AC.ID_ENTRY_NAME".
Expected tokens may include: ".". SQLSTATE=42601
j'ai bien cherche la ou il donne l'erreur(en rouge dans le texte), pas de probleme, c'est dans le select, or il fonctionne
Message édité par uriel le 15-07-2003 à 19:00:50
---------------
IVG en france