xml - 尝试检测 PL/SQL 过程中的非法 XML 字符

标签 xml unicode plsql ascii

这是一个谜题。我想编写一个过程来检查表中是否有任何破坏 XML 代码的字符。这些可以在 W3C Recommendation 中找到,但现在这并不重要。重要的是:

1) 字符“ç”的 ASCII 代码为 135。这是事实。然而,当我运行时

begin
  ascii('ç');
end;

我得到 50087

2)当我运行时

begin
  dbms_output.put_line(chr(135));
end;

什么都没有

显然,ascii() 和 chr() 只处理 0..127 范围内的值。所以我的问题是如何找到 unicode 等价物或编写我自己的扩展,以使用像 'ç' 和 135 这样的值。

非常感谢您的帮助。

附言我正在使用 Oracle SQL Developer。

最佳答案

如果您只是想摆脱奇怪的字符,可以使用 REGEXP_REPLACE 函数。例如,

REGEXP_REPLACE(your_value, '[:cntrl:]', '')

会删除所有控制(非打印)字符。

REGEXP_REPLACE 可从 Oracle 10g Rel. 2 起。文档位于 http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions130.htm

关于xml - 尝试检测 PL/SQL 过程中的非法 XML 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5504911/

相关文章:

c# - XML 的 XSD 验证有多昂贵?

xml - 从字符串(不是文件)获取 XML

java - 优化 Android/Java 代码 - 创建同一对象类型的多个实例

.net - Fitnesse 的 XML 输入/输出

python - 处理 Unicode 字符

python - 使用 Python strptime 解析月份名称时出现 UnicodeEncodeError

php - 使 PHP 脚本完全 Unicode 友好的声明

oracle - 如何在 H2 中定义 Oracle Package procedure 进行测试

sql - 为 SQL 连接选择单个(随机)行

sql - Oracle 直接加载插入 54,061,487 条记录