Laravel:错误代码:933错误消息:ORA-00933:SQL命令未正确结束位置

时间:2015-05-20 12:02:46

标签: php sql oracle laravel laravel-4

我尝试使用Oracle作为后端在Laravel 4.2中执行如下所示的更新命令。 每当我尝试这样做时,我都会收到错误> ORA-00933:SQL命令未正确结束位置。

DB::statement("UPDATE APY_SUBS_DTLS_MAST SET 
    APY_SUBS_NAME=$APY_SUBS_NAME,
    APY_SUBS_FATHERS_NAME=$APY_SUBS_FATHERS_NAME,
      APY_SUBS_GENDER=$APY_SUBS_GENDER,
      APY_DATE_OF_BIRTH=to_date($APY_DATE_OF_BIRTH,'MM-DD-YYYY'),
      APY_SUBS_PAN=$APY_SUBS_PAN,
      APY_SUBS_ADD=$APY_SUBS_ADD,APY_SUBS_CITY=$APY_SUBS_CITY,
      APY_SUBS_STATE=$APY_SUBS_STATE,
      APY_SUBS_CTRY=$APY_SUBS_CTRY,
      APY_SUBS_PIN=$APY_SUBS_PIN,APY_SUBS_AREA=$APY_SUBS_AREA,
      APY_LANDMARK=$APY_LANDMARK,
      APY_SUBS_TEL=$APY_SUBS_TEL,APY_SUBS_MOB=$APY_SUBS_MOB,
      APY_SUBS_MAIL=$APY_SUBS_MAIL,APY_SUBS_SMS_FLG=$APY_SUBS_SMS_FLG,
      APY_SUBS_MARITAL_STAT=$APY_SUBS_MARITAL_STAT,
      APY_SUBS_SPOUSE_NAME=$APY_SUBS_SPOUSE_NAME,
      APY_SUBS_SPOUSE_ADHAR=$APY_SUBS_SPOUSE_ADHAR,
      APY_SUBS_ACT_TYPE=$APY_SUBS_ACT_TYPE,
      APY_SUBS_BANK_NAME=$APY_SUBS_BANK_NAME,
      APY_SUBS_BRANCH=$APY_SUBS_BRANCH,APY_SUBS_MICR=$APY_SUBS_MICR,
      APY_SUBS_IFSC=$APY_SUBS_IFSC,APY_SUBS_ADHAR=$APY_SUBS_ADHAR,
      APY_SUBS_NEW_EXIST=$APY_SUBS_NEW_EXIST,
      APY_SUBS_BENEF_OTHER=$APY_SUBS_BENEF_OTHER,
      APY_SUBS_PENSION_AMT=$APY_SUBS_PENSION_AMT,APY_SUBS_CONTR_AMT=$APY_SUBS_CONTR_AMT,
      APY_SUBS_SI_DT=to_date($APY_SUBS_SI_DT,'MM-DD-YYYY'),
      APY_SUBS_APLN_DATE=to_date($APY_SUBS_APLN_DATE,'MM-DD-YYYY'),
      APY_SUBS_APLN_PLACE=$APY_SUBS_APLN_PLACE,
      APY_SUBS_IT_PAYER=$APY_SUBS_IT_PAYER,APY_SUBS_NOM_NAME=$APY_SUBS_NOM_NAME,
      APY_SUBS_NOM_DOB=to_date($APY_SUBS_NOM_DOB,'MM-DD-YYYY'),
      APY_SUBS_NOM_ADHAR=$APY_SUBS_NOM_ADHAR,
      APY_SUBS_REL_WITH_NOM=$APY_SUBS_REL_WITH_NOM,
      APY_SUBS_MAJ_MIN_FLG=$APY_SUBS_MAJ_MIN_FLG,
      APY_SUBS_GUARD_NAME=$APY_SUBS_GUARD_NAME,
      APY_SUBS_TITLE=$APY_SUBS_TITLE 
      WHERE 
      APY_SUBS_BANK_ACT_NO=$APY_SUBS_BANK_ACT_NO;" );  

我怎样才能解决这个问题,我哪里错了? 感谢您的建议。

1 个答案:

答案 0 :(得分:0)

我已经解决了。请将每个字符变量放在单引号中,例如: - (' $ APY_SUBS_FATHERS_NAME')。我正在给出下面的解决方案,这可能有助于某人。

DB::statement("UPDATE APY_SUBS_DTLS_MAST SET 
    APY_SUBS_NAME='$APY_SUBS_NAME',
    APY_SUBS_FATHERS_NAME='$APY_SUBS_FATHERS_NAME',
      APY_SUBS_GENDER='$APY_SUBS_GENDER',
      APY_DATE_OF_BIRTH=to_date('$APY_DATE_OF_BIRTH','MM-DD-YYYY'),
      APY_SUBS_PAN='$APY_SUBS_PAN',
      APY_SUBS_ADD='$APY_SUBS_ADD',APY_SUBS_CITY='$APY_SUBS_CITY',
      APY_SUBS_STATE='$APY_SUBS_STATE',
      APY_SUBS_CTRY='$APY_SUBS_CTRY',
      APY_SUBS_PIN='$APY_SUBS_PIN',APY_SUBS_AREA='$APY_SUBS_AREA',
      APY_LANDMARK='$APY_LANDMARK',
      APY_SUBS_TEL=$APY_SUBS_TEL,APY_SUBS_MOB=$APY_SUBS_MOB,
      APY_SUBS_MAIL='$APY_SUBS_MAIL',APY_SUBS_SMS_FLG='$APY_SUBS_SMS_FLG',
      APY_SUBS_MARITAL_STAT='$APY_SUBS_MARITAL_STAT',
      APY_SUBS_SPOUSE_NAME='$APY_SUBS_SPOUSE_NAME',
      APY_SUBS_SPOUSE_ADHAR='$APY_SUBS_SPOUSE_ADHAR',
      APY_SUBS_ACT_TYPE='$APY_SUBS_ACT_TYPE',
      APY_SUBS_BANK_NAME='$APY_SUBS_BANK_NAME',
      APY_SUBS_BRANCH='$APY_SUBS_BRANCH',APY_SUBS_MICR=$APY_SUBS_MICR,
      APY_SUBS_IFSC='$APY_SUBS_IFSC',APY_SUBS_ADHAR='$APY_SUBS_ADHAR',
      APY_SUBS_NEW_EXIST='$APY_SUBS_NEW_EXIST',
      APY_SUBS_BENEF_OTHER='$APY_SUBS_BENEF_OTHER',
      APY_SUBS_PENSION_AMT=$APY_SUBS_PENSION_AMT,APY_SUBS_CONTR_AMT=$APY_SUBS_CONTR_AMT,
      APY_SUBS_SI_DT=to_date('$APY_SUBS_SI_DT','MM-DD-YYYY'),
      APY_SUBS_APLN_DATE=to_date('$APY_SUBS_APLN_DATE','MM-DD-YYYY'),
      APY_SUBS_APLN_PLACE='$APY_SUBS_APLN_PLACE',
      APY_SUBS_IT_PAYER='$APY_SUBS_IT_PAYER',APY_SUBS_NOM_NAME='$APY_SUBS_NOM_NAME',
      APY_SUBS_NOM_DOB=to_date('$APY_SUBS_NOM_DOB','MM-DD-YYYY'),
      APY_SUBS_NOM_ADHAR='$APY_SUBS_NOM_ADHAR',
      APY_SUBS_REL_WITH_NOM='$APY_SUBS_REL_WITH_NOM',
      APY_SUBS_MAJ_MIN_FLG='$APY_SUBS_MAJ_MIN_FLG',
      APY_SUBS_GUARD_NAME='$APY_SUBS_GUARD_NAME',
      APY_SUBS_TITLE='$APY_SUBS_TITLE' 
      WHERE 
      APY_SUBS_BANK_ACT_NO='$APY_SUBS_BANK_ACT_NO'" );