Sql Oracle中的DBMS_ASSERT.enquote_name()
我有一个来自的示例代码,我想了解这个XMLGENSQLSql Oracle中的DBMS_ASSERT.enquote_name(),sql,oracle,Sql,Oracle,我有一个来自的示例代码,我想了解这个XMLGENSQL WITH t AS ( SELECT table_owner , table_name , partition_name , TO_NUMBER (EXTRACTVALUE (XMLTYPE (DBMS_XMLGEN.getxml ('SELECT COUNT(*) AS rows_exist FROM '
WITH t AS (
SELECT table_owner
, table_name
, partition_name
, TO_NUMBER (EXTRACTVALUE (XMLTYPE (DBMS_XMLGEN.getxml ('SELECT COUNT(*) AS rows_exist FROM '
|| DBMS_ASSERT.enquote_name (str => table_owner)
|| '.'
|| DBMS_ASSERT.enquote_name (str => table_name)
|| ' PARTITION ('
|| DBMS_ASSERT.enquote_name (str => partition_name)
|| ') WHERE ROWNUM <= 1'
)
)
, '/ROWSET/ROW/ROWS_EXIST'
)
) AS rows_exist
FROM all_tab_partitions
WHERE table_owner = 'WH'
AND table_name IN ('POINT_OF_SALE_FACTS')
ORDER BY table_owner
, table_name
, partition_position
)
SELECT 'ALTER TABLE '
|| DBMS_ASSERT.enquote_name (str => table_owner)
|| '.'
|| DBMS_ASSERT.enquote_name (str => table_name)
|| ' DROP PARTITION '
|| DBMS_ASSERT.enquote_name (str => partition_name)
|| ';' AS stmt
, t.*
FROM t
WHERE rows_exist = 0
;
带t作为(
选择表\u所有者
,表格名称
,分区名称
,TO_NUMBER(EXTRACTVALUE(XMLTYPE(DBMS_XMLGEN.getxml('SELECT COUNT(*))作为行存在于'
||DBMS_ASSERT.enquote_名称(str=>table_所有者)
|| '.'
||DBMS_ASSERT.enquote_名称(str=>table_名称)
||'分区('
||DBMS_ASSERT.enquote_名称(str=>partition_名称)
||“)其中ROWNUM表(所有者)
。
在enquote\u name的(str=>table\u owner)
中,箭头的语法是什么?
我找到了这个,但是没有这样的箭头语法,也找不到这个语法的网站。这是命名参数的语法。
str=>table\u name
要求将str
参数设置为table\u name
在这种情况下,它是不必要的,因为str
是DBMS\u ASSERT.ENQUOTE\u NAME
的第一个参数。因此您可以忽略它,只需调用DBMS\u ASSERT.ENQUOTE\u NAME(表所有者)
但在某些情况下,它可能非常有用。例如,当有多个可选参数(具有默认值)且您只想指定其中一个时。或者当您想通过在值旁边显示参数名称来阐明参数的用途时