-1
下面的语句是在存储过程中 合并成table1的一个甲骨文合并声明
USING (SELECT a.ROWID row_id, RTRIM(NVL(c.address_line1_text, '')) || ' ' ||
RTRIM(NVL(b.unit_number, '')) address_line1_text,
RTRIM(c.city_name) city_name, RTRIM(c.state_code) state_code,
RTRIM(c.basic_zip_code) basic_zip_code,
NVL(b.unit_number, ' ') unit_number
FROM table1 a ,table2 b ,table3 c
WHERE
a.program_type_cd = 'P'
AND a.development_code = b.development_number
) src
ON (a.ROWID = src.row_id)
--(ERROR IN LINE BELOW)
WHEN MATCHED THEN UPDATE SET street = RTRIM(NVL(src.address_line1_text, ''))
|| ' ' || RTRIM(NVL(b.unit_number, '')),
city = RTRIM(src.city_name),
STATE = RTRIM(src.state_code),
zip = RTRIM(src.basic_zip_code),
unit_number = NVL(src.unit_number, ' ');
我收到一个错误说:
"B"."UNIT_NUMBER": INVALID IDENTIFIER
我这样做后,我发布了问题,并工作。但是你认为我在SET语句中做了同样的事情吗?例如,如果在SET语句中,我只是说street = src.address_line1_text将不会像street = RTRIM(NVL(src.address_line1_text,'')) || ''|| RTRIM(NVL(b.unit_number,'')) – Drake 2009-10-05 17:58:14
这就是我的想法。谢谢 – Drake 2009-10-05 18:37:07
'street = RTRIM(NVL(src.address_line1_text,''))|| ''|| RTRIM(NVL(b.unit_number,''))'等于(根据表a,b和c):RTRIM(NVL(R.RIMIM(NVL(c.address_line1_text,''))||'' || RTRIM(NVL(b.unit_number,'')),''))|| ''|| RTRIM(NVL(NVL(b.unit_number,''),''))' 我想你只想要'street = src.address_line1_text' – manji 2009-10-05 18:37:32