【发布时间】:2023-03-10 09:45:01
【问题描述】:
我正在尝试在 oracle 数据库上使用 knex 使用正则表达式创建约束。 Knex 在 oracle 列上创建约束,但它替换了“?”使用“:1”、“:2”等占位符。 我试图用“\?”替换问号(根据文档)。它在 oracle db 上对我不起作用。 这是一个oracle列约束的例子
knex.raw('ALTER TABLE atest ADD CONSTRAINT C_TEST CHECK (REGEXP_LIKE(COL_A, \'^((([A]{0,4})WW)|(W{0,2}))\\?([B]{5}WW)+((([C]{5})W\\?))$\'))');
【问题讨论】:
-
给出这个 regexp_like 的示例模式
-
模式示例^((([A]{0,4})WW)|(W{0,2}))\\?([B]{5}WW)+( (([C]{5})W\\?))$' 但任何其他模式包含 ?当通过 knex 迁移脚本添加约束时,将在约束中不起作用