小编use*_*907的帖子

oracle 12c - 在最后一次出现字符后选择字符串

我有以下字符串:

ThisSentence.ShouldBe.SplitAfterLastPeriod.Sentence
Run Code Online (Sandbox Code Playgroud)

所以我想选择,Sentence因为它是最后一个时期之后的字符串.我怎样才能做到这一点?

sql string oracle oracle12c

9
推荐指数
2
解决办法
4万
查看次数

Oracle 18c - REGEXP_REPLACE 的替代方案

迁移到Oracle 18c企业版后,无法创建基于函数的索引。

这是我的索引 DDL:

CREATE INDEX my_index ON my_table
(UPPER( REGEXP_REPLACE ("DEPT_NUM",'[^[:alnum:]]',NULL,1,0)))
TABLESPACE my_tbspace
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           );
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ORA-01743: only pure functions can be indexed
01743. 00000 -  "only pure functions can be indexed"
*Cause:    The indexed function uses SYSDATE or the user environment.
*Action:   PL/SQL functions must be pure (RNDS, RNPS, WNDS, WNPS).  SQL
           expressions must not use SYSDATE, USER, USERENV(), or anything …
Run Code Online (Sandbox Code Playgroud)

regex oracle indexing ddl oracle18c

5
推荐指数
2
解决办法
4352
查看次数

Oracle-仅在源不为null时更新列

我有一个在包装内动态生成的更新语句。

我需要更新的target_field2唯一时间source_field2NOT NULL,如果NULL保持target_field2原样。

希望对此有一个简单的答案。这是关注的动态部分:

                 ELSIF cur_field_to_update.FIELD_NAME = 'SOURCE_FIELD2'
                 THEN
                    v_update_values := 
                        v_update_values
                        || ', CASE WHEN NVL('''
                        || data_cur.IND_TYPE
                        || ''', NULL) <> ''D'' THEN NULL ELSE TO_NUMBER(NVL('
                        || cur_field_to_update.FIELD_NAME
                        || ','
                        || TARGET_FIELD2
                        || ')) END';
Run Code Online (Sandbox Code Playgroud)

最终看起来像..

UPDATE target_table 
SET (target_field1,target_field2) = 
(SELECT source_field1, 
CASE WHEN NVL('A',NULL) <> 'A' 
THEN NULL   
ELSE TO_NUMBER(NVL(source_field2,target_field2))
END 
FROM source_table);
Run Code Online (Sandbox Code Playgroud)

sql oracle

1
推荐指数
1
解决办法
5562
查看次数

标签 统计

oracle ×3

sql ×2

ddl ×1

indexing ×1

oracle12c ×1

oracle18c ×1

regex ×1

string ×1