The following lines contain the word 'select', 'insert', 'update' or 'delete':
select ou.ORACLE_USERNAME into L_APP_CODE
from FND_ORACLE_USERID ou, FND_TABLES t
where ou.ORACLE_ID = t.APPLICATION_ID AND t.TABLE_NAME = P_TBL_NAME;
select ou.ORACLE_USERNAME into L_APP_CODE
from FND_ORACLE_USERID ou, FND_VIEWS v
where ou.ORACLE_ID = v.APPLICATION_ID AND v.VIEW_NAME = P_TBL_NAME;
select oracle_username into L_OWNER
from fnd_oracle_userid where read_only_flag = 'U';
SELECT DATA_TYPE into L_COL_TYPE
from dba_tab_columns
where COLUMN_NAME=P_COL_NAME AND TABLE_NAME=P_TBL_NAME AND OWNER=L_OWNER;
SELECT DATA_TYPE into L_COL_TYPE
from dba_tab_columns
where COLUMN_NAME=P_COL_NAME AND TABLE_NAME=P_TBL_NAME AND OWNER=L_OWNER;
STR_SELECT VARCHAR2(2000);
SELECT1 VARCHAR2(256);
SELECT2 VARCHAR2(256);
SELECT3 VARCHAR2(256);
SELECT4 VARCHAR2(256);
v_SelectStmt VARCHAR2(2000);
select SQL_VALIDATION into SQL_STR
from fnd_profile_options
where ( PROFILE_OPTION_NAME = P_PROFILE_NAME OR PROFILE_OPTION_NAME = UPPER(P_PROFILE_NAME) );
STR_SELECT := LTRIM(RTRIM( SUBSTR(SQL_STR, 8, idx-8) )); -- 8 is the length of "SELECT "+1
IF ( SEARCH_SUBSTR(STR_SELECT, 'DECODE') > 0 OR SEARCH_SUBSTR(STR_SELECT, 'DISTINCT') > 0 ) THEN
return P_PROFILE_VALUE;
PARSE_COMMA( STR_SELECT, SELECT1, SELECT2, SELECT3, SELECT4 );
IF ( INTO1 = ':PROFILE_OPTION_VALUE' ) THEN SEL_CODE := SELECT1;
ELSIF ( INTO2 = ':PROFILE_OPTION_VALUE' ) THEN SEL_CODE := SELECT2;
ELSIF ( INTO3 = ':PROFILE_OPTION_VALUE' ) THEN SEL_CODE := SELECT3;
ELSIF ( INTO4 = ':PROFILE_OPTION_VALUE' ) THEN SEL_CODE := SELECT4;
IF ( INTO1 = ':VISIBLE_OPTION_VALUE' ) THEN SEL_DISPLAY := SELECT1;
ELSIF ( INTO2 = ':VISIBLE_OPTION_VALUE' ) THEN SEL_DISPLAY := SELECT2;
ELSIF ( INTO3 = ':VISIBLE_OPTION_VALUE' ) THEN SEL_DISPLAY := SELECT3;
ELSIF ( INTO4 = ':VISIBLE_OPTION_VALUE' ) THEN SEL_DISPLAY := SELECT4;
v_SelectStmt := 'SELECT ' || SEL_DISPLAY || ' FROM ' || STR_FROM || ' WHERE ' || SEL_CODE || ' = ' || P_PROFILE_VALUE;
v_SelectStmt := v_SelectStmt || ' AND ' || STR_WHERE;
DBMS_SQL.PARSE( v_CursorID, v_SelectStmt, DBMS_SQL.NATIVE );
OPEN sql_csr FOR v_SelectStmt;
v_SelectStmt := 'SELECT ' || SEL_CODE || ' FROM ' || STR_FROM || ' WHERE LTRIM(RTRIM(' || SEL_DISPLAY || ')) = '
|| FND_GLOBAL.LOCAL_CHR(39) || LTRIM(RTRIM(P_PROFILE_VALUE)) || FND_GLOBAL.LOCAL_CHR(39);
v_SelectStmt := v_SelectStmt || ' AND ' || STR_WHERE;
DBMS_SQL.PARSE( v_CursorID, v_SelectStmt, DBMS_SQL.NATIVE );
OPEN sql_csr FOR v_SelectStmt;