0
저장 프로 시저에 포함 된 열을 기반으로 테이블 유형을 식별하려고합니다. 처음에 작성한 쿼리는 다음과 같습니다.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|))
두 열이 모두 테이블에 없으면 작동하지 않습니다. 나는 이것을 공격하는 명백한 방법이 없다고 확신한다.