標籤:style color 使用 ar cti new size sql
在ORACLE中,單引號有兩個作用,一是字串是由單引號引用,二是轉義。單引號的使用是就近配對,即就近原則。而在單引號充當轉義角色時相對不好理解
1、從第二個單引號開始被視為轉義符,如果第二個單引號後面還有單引號(哪怕只有一個)。
select ‘‘‘‘ from dual ----output:‘
解釋:第二個單引號被作為轉義符,第三個單引號被轉義,可將sql寫成這樣更好理解:
select ‘ ‘‘ ‘ from dual ----output:‘
2、串連符‘||’導致了新一輪的轉義:串連符號‘||’左右的單引號沒有任何的關係,除非‘||’是作為字串的一部分(這在動態SQL中很常見)。
select ‘name‘||‘‘‘‘ from dual ----output:name‘
理解:||後面的作為一個字串,即前後是‘,中間又是一個密集型單引號串‘‘,因此第一個為轉義功能
select ‘name‘‘‘‘‘ from dual ----output:name‘‘
理解:第一個和最後一個單引號作為字串引用符,中間四個單引號兩兩轉義
例子:
select ‘insert into wt_shipmentproduct (WT_SHIPMENTPRODUCT_ID, AD_CLIENT_ID, AD_ORG_ID, ISACTIVE, CREATED, CREATEDBY, UPDATED, UPDATEDBY, M_PRODUCT_ID, WT_OWMS_SHIPMENT_ID, WT_OFC_ID, QTY, CONFIRMQTY, NAME)‘ ||
‘values (wt_shipmentproduct_seq.nextval, 11, 50000, ‘‘Y‘‘, sysdate, 1000180, sysdate, 1002382, (select M_PRODUCT_ID from M_PRODUCT p where p.sku = ‘‘‘ ||
m.sku ||
‘‘‘), (select WT_OWMS_SHIPMENT_id from WT_OWMS_SHIPMENT s where s.documentno = ‘‘‘ ||
m.documentno ||
‘‘‘),(select wt_ofc_id from WT_OWMS_SHIPMENT where documentno=‘‘‘ ||
m.documentno || ‘‘‘), ‘ || m.qtyproduct || ‘, 0, ‘‘‘ || m.name ||
‘‘‘);‘
,
m.qtyproduct
from adempiere.wv_owms_arrivalnoticeproduct m
where m.documentno in (‘1000768‘)