J'essaie d'identifier les types de tables en fonction des colonnes qu'elles contiennent dans une procédure stockée. La requête que j'ai initialement créée est la suivante:Recherche d'informations de table et de colonne à partir de all_tab_cols
SELECT CASE WHEN col_one. IS NOT NULL THEN 'COL1'
WHEN col_two IS NOT NULL THEN 'COL2'
ELSE 'NEITHER'
END
INTO ls_table_type
FROM (SELECT column_name col_one
FROM sys.all_tab_cols
WHERE upper (owner) = upper ('|OWNER|')
AND hidden_column = 'NO'
AND virtual_column = 'NO'
AND column_id IS NOT NULL
AND column_name = '|COL1_NAME|'
AND table_name = upper(|TABLE_NAME|))
,(SELECT column_name as col_two
FROM sys.all_tab_cols
WHERE upper (owner) = upper ('|OWNER|')
AND hidden_column = 'NO'
AND virtual_column = 'NO'
AND column_id IS NOT NULL
AND column_name = '|COL2_NAME|'
AND table_name = upper(|TABLE_NAME|))
Cela ne fonctionne pas à moins que les deux colonnes soient présentes dans une table. Je suis sûr qu'il me manque une manière évidente d'attaquer ceci.