2013-07-17 32 views
0

我正在处理一个请求,我想我错过了一个子句,因为我有这个错误 错误在第1行: ORA-00933:SQL命令不正确地结束错误在第1行:ORA-00933:SQL命令没有正常结束

请求:

echo "update account_balances_t set credit_limit='51200' inner join account_t on account_t.poid_id0=account_balances_t.obj_id0 where access_code1 in (SELECT DISTINCT ACCESS_CODE1,REC_ID FROM ACCOUNT_T A, ACCOUNT_PRODUCTS_T AP WHERE A.STATUS != 10103 AND A.ACCESS_CODE1 IS NOT NULL AND A.POID_ID0 = AP.OBJ_ID0 AND AP.PRODUCT_OBJ_ID0 = (SELECT POID_ID0 FROM PRODUCT_T WHERE NAME = 'IEW - Europe Daily Plan 1')); "|sqlplus -s `whoami`/`whoami`@$ORACLE_SID 

错误:

SELECT DISTINCT ACCESS_CODE1,REC_ID FROM ACCOUNT_T A, ACCOUNT_PRODUCTS_T AP WHERE A.STATUS != 10103 AND A.ACCESS_CODE1 IS NOT NULL AND A.POID_ID0 = AP.OBJ_ID0 AND AP.PRODUCT_OBJ_ID0 = (SELECT POID_ID0 FROM PRODUCT_T WHERE NAME = 'IEW - Europe Daily Plan 1')) 
                                                                    * 
ERROR at line 1: 
ORA-00933: SQL command not properly ended 

回答

1

基本上,你有这样的:

UPDATE account_balances_t 
SET credit_limit='51200' 
INNER JOIN account_t ON account_t.poid_id0=account_balances_t.obj_id0 
WHERE access_code1 IN (...); 

我在available syntax variations for UPDATE中找不到类似的东西。

另外,您试图将列access_code1与子查询匹配,该子查询返回两个列。

0
UPDATE PEOPLE a 
SET a.SURNAME = (
    select b.SURNAME 
    from PEOPLE b 
    where b.NI.NO = a.NI_NUMBER 
) 
相关问题