如何在oracle数据库中插入带有“&,?。@:;”等特殊字符的正则表达式?

时间:2018-01-12 10:40:51

标签: sql regex oracle

我有一个我想在oracle数据库表列中插入的正则表达式值但是我有一些问题,这些值没有在数据库中正确插入 这是我要插入的值:

.myselect_class{
   display: inline-block;
 }

此插入的结果是:

INSERT INTO valid_value VALUES (9, 14, 'REGEX[[A-Z.,-\s]+(,\s[A-Za-z.,-\s]+)?]', 1);

我输了"?"字符可以帮助我如何在表格列中插入正则表达式值。

我使用批处理文件启动脚本

valid_value 
+--------------------------------------+
REGEX[[A-Z.,-\s]+(,\s[A-Za-z.,-\s]+)]

提前致谢

4 个答案:

答案 0 :(得分:3)

如果您发现直接插入有困难,可以对每个特殊字符使用CHR函数。

由于

答案 1 :(得分:2)

对于记录,所提到的字符都没有在SQL字符串中具有特殊含义,因此它们不需要任何特殊处理:

SQL> SELECT '&,?.@:;' AS are_we_special
  2  FROM DUAL;

ARE_WE_
-------
&,?.@:;

online demo

... &是唯一可能的异常(“SET DEFINE OFF” in Oracle Database),并且仅在SQL * Plus和SQL Developer的上下文中 - 在这种情况下,您将获得输入值对于xxxxx 提示。

无论OP有什么问题,CHR()只是针对他具体未公开问题的解决方法。

答案 2 :(得分:0)

这可能对您有所帮助

   INSERT INTO valid_value VALUES (9, 14, 'REGEX[[A-Z.,-\s]+(,\s[A-Za-z.,-\s]+)'?']', 1);

答案 3 :(得分:0)

试试这个:

INSERT INTO valid_value VALUES (9, 14, 'REGEX[[A-Z.,-\s]+(,\s[A-Za-z.,-\s]+) ?]', 1);

参见演示:

在SQLPLUS中:

SQL> /

COL1                                            
---------------------------------------------
REGEX[[A-Z.,-\s]+(,\s[A-Za-z.,-\s]+) ?]

现在问题是您正在使用哪个客户端。在SQLPLUS中,它的工作方式如上所示。