给定一个由表单标识的对象owner.tablename
;如何拆分所有者和表名?
我对字符串标记化的想法或select owner, object_name from all_objects where owner || '.' || object_name = 'SCHEMA.TABLENAME'
看起来都像是 hack。
给定一个由表单标识的对象owner.tablename
;如何拆分所有者和表名?
我对字符串标记化的想法或select owner, object_name from all_objects where owner || '.' || object_name = 'SCHEMA.TABLENAME'
看起来都像是 hack。
您可以DBMS_UTILITY.name_tokenize
用于此目的。
此过程调用解析器将给定名称解析为“a [.b [.c]][@dblink]”。它去除双引号,如果没有引号,则转换为大写。它忽略各种评论,并且不进行语义分析。缺失值保留为 NULL。
例如
DBMS_UTILITY.NAME_TOKENIZE
( name => 'SCHEMA.TABLENAME'
, a => v_schema
, b => v_object_name
, c => v_subobject -- ignore
, dblink => v_dblink
, nextpos => v_nextpos -- ignore
);
http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_util.htm#BJEFIFBJ
SELECT SUBSTR('SCHEMA.TABLENAME', 0, INSTR('SCHEMA.TABLENAME', '.') - 1) OWNER,
SUBSTR('SCHEMA.TABLENAME', INSTR('SCHEMA.TABLENAME', '.') + 1) TABLE_NAME
FROM DUAL