我正在尝试使用oracle数据库上的knex使用regexp创建约束。Knex在oracle列上创建约束,但它替换了"?“带有":1“、":2”这样的占位符。我试图将问号(根据文档)替换为"\?“。在甲骨文数据库对我不起作用。下面是甲骨文列的一个例子
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\\?))$\'))');发布于 2020-04-23 15:03:31
祝贺你!看来您在knex (https://runkit.com/embed/qlo6re5ixn4s)中发现了一个bug。奇怪的是,测试还没有抓到这个。请在knex的github中打开一个bugreport。
尽管数据库在查询位置接受值绑定,但您可以尝试如下:
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?))$']
);https://stackoverflow.com/questions/61365681
复制相似问题