HOST echo %NLS_LANG% > Y:\temp\NLS_CHAR_SESSION.lst
DECLARE
dbs_nls varchar2(4000);
ses_nls varchar2(4000);
--
file_contents VARCHAR2(32767) := '
@@Y:\temp\NLS_CHAR_SESSION.lst
';
--
BEGIN
--
file_contents := TRIM(replace(replace(file_contents,CHR(13),''),CHR(10),' '));
ses_nls := file_contents;
SELECT a.value||'_'||b.value||'.'||c.value INTO dbs_nls
FROM (select value from nls_database_parameters where parameter = 'NLS_LANGUAGE') a,
(select value from nls_database_parameters where parameter = 'NLS_TERRITORY') b,
(select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET') c;
--
IF(NVL(dbs_nls,'X') != NVL(ses_nls,'Y')) THEN
IF (UPPER(dbs_nls) = 'AMERICAN_AMERICA.WE8ISO8859P1' AND UPPER(ses_nls) = 'AMERICAN_AMERICA.WE8MSWIN1252') OR (UPPER(ses_nls) = 'AMERICAN_AMERICA.WE8ISO8859P1' AND UPPER(dbs_nls) = 'AMERICAN_AMERICA.WE8MSWIN1252')
dbms_output.put_line('INFO: ');
dbms_output.put_line(' CHARACTERSET WE8MSWIN1252 is a binary superset of WE8ISO8859P1')
dbms_output.put_line(' DATABASE:: '||dbs_nls|| CHR(10) || ' SESSION :: '||ses_nls);
ELSE
dbms_output.put_line('##### WARNING!!! ##############################################');
dbms_output.put_line(' The two CHARACTERSET settings are not equal !!!');
dbms_output.put_line(' DATABASE:: '||dbs_nls|| CHR(10) || ' SESSION :: '||ses_nls);
END IF;
ELSE
dbms_output.put_line('INFO: ');
dbms_output.put_line(' The two CHARACTERSET settings are equal');
dbms_output.put_line(' DATABASE:: '||dbs_nls|| CHR(10) || ' SESSION :: '||ses_nls);
END IF;
--
END;
/