Syntaxe générale erreur que de se CONNECTER PAR requête dans Informix lors de l'utilisation de cité de la table des identificateurs

StackOverflow https://stackoverflow.com//questions/25036439

Question

Lors de l'exécution de la requête suivante sur une base de données Informix, la base de données des rapports d'un général de l'erreur de syntaxe (sans aucune indication de ce que les causes du problème).La même requête fonctionne parfaitement sur CUBRID ou Oracle bases de données, les deux qui a également en charge la CONNECT BY syntaxe:

select 
  lower(connect_by_root "t_directory"."name"), 
  connect_by_isleaf, 
  connect_by_iscycle, 
  substr(
    sys_connect_by_path(lower("t_directory"."name"), '/'), 
    2) "dir"
from "t_directory"
start with "t_directory"."parent_id" is null
connect by nocycle prior "t_directory"."id" = "t_directory"."parent_id"
order siblings by lower("t_directory"."name") asc

La base de données que j'utilise est une Édition Développeur de Informix 12.10 sur Windows.Je suis l'exécution de la requête à partir d'un pilote JDBC à la suite de l'URL de connexion (pour permettre la cité de la table des identificateurs):

jdbc:informix-sqli://localhost:9092/test:INFORMIXSERVER=ol_informix;DELIMIDENT=y
Était-ce utile?

La solution

La question précise ici, c'est le fait que prior ne pas accepter la cité de la table des identificateurs, bien que la cité de la colonne des identifiants semblent être très bien.Cette requête fonctionne parfaitement bien:

select 
  lower(connect_by_root "t_directory"."name"), 
  connect_by_isleaf, 
  connect_by_iscycle, 
  substr(
    sys_connect_by_path(lower("t_directory"."name"), '/'), 
    2) "dir"
from "t_directory"
start with "t_directory"."parent_id" is null
connect by nocycle prior t_directory."id" = "t_directory"."parent_id"
order siblings by lower("t_directory"."name") asc

...la différence:

-- Bad:
connect by nocycle prior "t_directory"."id" = "t_directory"."parent_id"

-- Good:
connect by nocycle prior t_directory."id" = "t_directory"."parent_id"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top