CREATE OR REPLACE FUNCTION APPS.XXFND_FTP_PATH_LKP ( p_type IN VARCHAR2,
p_suffix IN VARCHAR2 DEFAULT NULL,
p_ora_dir IN VARCHAR2 DEFAULT NULL
) RETURN VARCHAR2
IS
l_utl_type VARCHAR2 (50) := '';
l_utl_prefix VARCHAR2 (50) := '';
l_utl_middle VARCHAR2 (50) := '';
l_utl_org_code VARCHAR2 (50) := '';
l_utl_org_code_resp VARCHAR2 (50) := '';
--
l_instance_name VARCHAR2 (50) := '';
l_final_path VARCHAR2 (300) := '';
v_chr_inst_emc_moved VARCHAR2 (10) ; CURSOR c_instance IS
SELECT lower(instance_name) instance_name
FROM v$instance;
BEGIN
--Retrieve System Profile Option Values--
l_utl_type := FND_PROFILE.VALUE('XXFND_UTL_' || upper(ltrim(rtrim(p_type))));
l_utl_prefix := FND_PROFILE.VALUE('XXFND_UTL_PREFIX');--/apps
l_utl_middle := FND_PROFILE.VALUE('XXFND_UTL_MIDDLE');--/data
l_utl_org_code := FND_PROFILE.VALUE('XXFND_UTL_ORG_CODE');
l_utl_org_code_resp := FND_PROFILE.VALUE('XXFND_UTL_ORG_CODE_RESP');
--
--Responsibility-Level Org Code takes priority... If N/A, Organization-Level Org Code is used--
IF (l_utl_org_code_resp IS NOT NULL) THEN
l_utl_org_code := l_utl_org_code_resp;
END IF;
--
--Dynamically retrieve Instance Name--
FOR c1 IN c_instance
LOOP
l_instance_name := c1.instance_name;
END LOOP;
/*Addition by Infosys on 12-10-09-EMC Proj*/
v_chr_inst_emc_moved :=fnd_profile.VALUE ('XXFND_INSTANCE_EMC_MOVED');-- Profile to check whther Instance is EMC Moved
/*Check whether instance is EMC Moved and generate the FTP path dynamically */
IF (v_chr_inst_emc_moved = 'Y')
THEN
l_final_path := '/' || l_instance_name ||'db'|| l_utl_middle || l_utl_org_code || l_utl_type||p_suffix
ELSE
l_final_path := l_utl_prefix || '/' || l_instance_name || l_utl_middle || l_utl_org_code || l_utl_type ;
--Attach optional suffix portion of path as needed (initial "/" assumed part of suffix supplied)--
l_final_path := l_final_path || p_suffix;--/apps/11/data/outfile/min
END IF;
IF UPPER(p_ora_dir) = 'Y'
THEN
--l_final_path := 'FTP_'||UPPER(REPLACE(l_utl_org_code,'/',''))||'_'||UPPER(REPLACE(p_type,'/',''))||'_'||UPPER(REPLACE(p_suffix,'/',''));
BEGIN
SELECT dd.directory_name
INTO l_final_path
FROM DBA_DIRECTORIES dd
WHERE dd.directory_path = l_final_path
AND rownum = 1;
EXCEPTION
WHEN OTHERS
THEN
l_final_path := '/' || l_instance_name ||'db'|| l_utl_middle || l_utl_org_code || l_utl_type||p_suffix;
END;
END IF;
RETURN l_final_path;
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
END XXFND_FTP_PATH_LKP;
/
SELECTxxfnd_ftp_path_lkp('INFILE','/maintpo')FROMdual