У меня возникает ошибка при попытке запустить скрипт функции. Я попытался добавить N перед строкой, но это не сработало. Возможно, я сделал это неправильно.PL/SQL: ORA-12704: несоответствие набора символов при создании функции
Я пытаюсь создать функцию ниже, но получаю ошибку при ее запуске.
create or replace FUNCTION Get_Per_Address_For_Register(PERSON_CODE_PARAM IN NUMBER,
ADDR_TYPE_PARAM IN NUMBER,
lang IN NUMBER) RETURN VARCHAR2
as
addressval VARCHAR2(1000);
BEGIN
begin
SELECT * INTO addressval FROM(SELECT
case when tai.ADDRESS_LINE_1 IS NULL
or tai.ADDRESS_LINE_1 = ' '
then ''
-- Error block Start ------------
else CONCAT(tai.ADDRESS_LINE_1,',') end || case when
tai.ADDRESS_LINE_2 = ' '
or tai.ADDRESS_LINE_2 = ' '
then ''
else CONCAT(tai.ADDRESS_LINE_2,',') end || case when
tai.ADDRESS_LINE_3 IS NULL
or tai.ADDRESS_LINE_3 = ' '
then ''
else CONCAT(tai.ADDRESS_LINE_3,',') end || case when tai.VILLAGE
IS NULL or tai.VILLAGE = ' '
then ''
else CONCAT(tai.VILLAGE,',') end || case when mps.ps IS NULL
or mps.ps = ' '
then ''
else CONCAT(mps.ps,',') end || case when md.district IS NULL
or md.district = ' '
then ''
else CONCAT(md.district,',') end || case when ms.state IS NULL
or ms.state = ' '
then ''
else CONCAT(ms.state,',') end || case when mn.nationality IS NULL
or mn.nationality = ' '
then ''
else CONCAT(mn.nationality,',') end || case when tai.pincode IS
NULL or tai.pincode = '0'
then ''
-- Error Block End---------------
else ',' || tai.pincode || '.' end FROM
t_person_address tai
LEFT JOIN m_nationality mn
ON mn.NATIONALITY_CD = tai.COUNTRY_CD
and mn.LANG_CD = tai.LANG_CD
LEFT JOIN m_state ms
ON ms.STATE_CD = tai.STATE_CD
and ms.LANG_CD = tai.LANG_CD
LEFT JOIN m_district md
ON md.DISTRICT_CD = tai.DISTRICT_CD
and md.LANG_CD = tai.LANG_CD
LEFT JOIN m_police_station mps
ON mps.PS_CD = tai.PS_CD
and mps.LANG_CD = tai.LANG_CD WHERE tai.lang_cd = lang
and tai.PERSON_CODE = PERSON_CODE_PARAM
and tai.ADDR_TYPE = ADDR_TYPE_PARAM ORDER BY tai.ADDRESS_CD
DESC) WHERE ROWNUM <= 1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
end;
RETURN addressval;
END;
При попытке запуска получить, я получаю следующее сообщение об ошибке:
PL/SQL: ORA-12704: character set mismatch
Каковы типы данных всех этих компонентов? –