【问题标题】:How to enforce a Oracle DB to only allow insertion of ASCII chars in any table within it?如何强制 Oracle DB 只允许在其中的任何表中插入 ASCII 字符?
【发布时间】:2015-11-10 20:00:29
【问题描述】:

我在 Oracle DB 中有几个表,它们将包含包含常用数据的列,可以是字符串、数字、时间/日期等。这里唯一的限制是,每当插入新数据时,如果出现以下情况,它应该会抛出错误它不是 ASCII。

Oracle 中是否有这样的属性/属性可以保证我只处理 ASCII?

【问题讨论】:

  • 我正准备回答:“使用 US7ASCII 字符集创建数据库”但显然该字符集在 11G 中不再可用

标签: sql oracle ascii


【解决方案1】:

您可以为此创建一个检查约束:

alter table foo 
  add constraint check_ascii 
  check (asciistr(the_column) = the_column);

asciistr() 将“转义”所有非 ASCII 字符。因此,如果该函数的结果与输入不同,则它包含非 ascii 字符。

【讨论】:

    猜你喜欢
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多