derby输入数据时如何避免词法错误?

How to avoid the lexical error when input data to derby?

我有一些常规模式值要保存在 derby 中。它包括德比中提到的许多分隔字母。我如何将此数据输入德比?

insert into configuration_master (PROPERTY_ID,PROPERTY_KEY, PROPERTY_VALUE, PROPERTY_NAME , PROPERTY_DESCRIPTION , PROPERTY_VALIDATION  ,CATEGORY_1,CATEGORY_2,CATEGORY_3,FST_REG_DT,FNL_AMD_DT ) values( 'agent.dependency.urlpatterns','agent.dependency.urlpatterns',"
        \(\s*['"]#target['"]\s*\)\.attr\(\s*['"]action['"]\s*,['"]([\w]+\.do)['"]\)
        \.attr\(\s*['"]action['"]\s*\,\s*['"]([\w_/\?\=\&]+)['"]\s*\)
        a.href\s*\=\s*['"]([\w_/\?\=\&]+)['"]
        [\. ]action\s*\=\s*['"]([\w_/\?\=\&]+)['"]
        ['"]((/[\w\._]+)*/[\w\._]+\.do)['"]
        ['"]\S*\.html['"]
        (action|value|href)\s*=\s*['"]((\/[a-zA-Z0-9$\{\}?=.]+){2,3})\/?['"]
        ",'agent.dependency.urlpatterns','','','DEFAULT','DEFAULT','DEFAULT','','')

我不会通过你那个可怕的正则表达式来修复它,但如果你确实想将它插入到你的数据库中,那么:

  • 使用单引号 (') 将整个正则表达式字符串括起来。目前您正在使用双引号 (").
  • 在字符串中使用两个单引号来表示字符串中的一个单引号字符。例如

     SELECT 'Don't do this' FROM some_table
    

    会因错误而失败,但是

     SELECT 'It''s better to do this' FROM some_table
    

    将select字符串It's better to do this.