Pl sql将国家字符转换为unicode

Pl sql将国家字符转换为unicode,unicode,plsql,Unicode,Plsql,我尝试将丹麦国家字符转换为unicode。plsql中是否有函数或plsql函数的参数可以帮助我?我尝试从dual中选择convert('198,æ:,Ø:,Ø:,å:','AL32UTF8')但它没有帮助。作为一种变通方法,我在代码中使用了类似的东西 w_temp := replace('Æ, æ:,Ø, ø:,Å, å:','å','\u00E5'); w_temp := replace(w_temp,'Å','\u00C5'); w_temp := replace(w_temp,'æ','

我尝试将丹麦国家字符转换为unicode。plsql中是否有函数或plsql函数的参数可以帮助我?我尝试从dual中选择convert('198,æ:,Ø:,Ø:,å:','AL32UTF8')但它没有帮助。作为一种变通方法,我在代码中使用了类似的东西

w_temp := replace('Æ, æ:,Ø, ø:,Å, å:','å','\u00E5');
w_temp := replace(w_temp,'Å','\u00C5');
w_temp := replace(w_temp,'æ','\u00E6');
w_temp := replace(w_temp,'Æ','\u00C6');
w_temp := replace(w_temp,'ø','\u00F8');
w_temp := replace(w_temp,'Ø','\u00D8');

但这种方法就像是在胡闹。我的代码不适用于任何其他国家的字符-您有什么建议吗?

我不确定全局是什么,但假设您当前的数据库中有支持您的变音符号的单个字符集,我宁愿使用完全不同的方法:

  • 导出数据库和现有字符集所需的数据
  • 使用unicode字符集重新创建数据库
  • (很可能)更改te定义并使用CHAR而不是字节语义安装所有数据库对象
  • 将所有数据导入新数据库

显然有很多细节需要整理,但让Oracle在导入过程中正确转换字符集似乎是唯一合理的方法。

我不确定大局是什么,但假设您当前的数据库中有支持变音符号的单个字符集,我宁愿使用完全不同的方法:

  • 导出数据库和现有字符集所需的数据
  • 使用unicode字符集重新创建数据库
  • (很可能)更改te定义并使用CHAR而不是字节语义安装所有数据库对象
  • 将所有数据导入新数据库
显然有很多细节需要整理,但让Oracle在导入期间正确转换字符集似乎是唯一合理的方法。

convert()函数可以按如下方式使用
convert('fioajfiohawiofh',,)

我不知道您的字符集,但您可以尝试使用以下选择来查找有用的字符集:

SELECT
  CONVERT('Æ, æ:,Ø, ø:,Å, å:',cs.value,'UTF8') AS conv
  ,cs.value
  ,cs.isdeprecated
FROM
  V$NLS_VALID_VALUES cs
WHERE
  cs.parameter = 'CHARACTERSET'
;
CONVERT()函数可以按如下方式使用
CONVERT('fioajfiohawiofh',,)

我不知道您的字符集,但您可以尝试使用以下选择来查找有用的字符集:

SELECT
  CONVERT('Æ, æ:,Ø, ø:,Å, å:',cs.value,'UTF8') AS conv
  ,cs.value
  ,cs.isdeprecated
FROM
  V$NLS_VALID_VALUES cs
WHERE
  cs.parameter = 'CHARACTERSET'
;