当前位置: 首页 > 知识库问答 >
问题:

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

甄云
2023-03-14

我试图在Laravel 4.2中使用Oracle作为后端执行更新命令,如下所示。每当我尝试这样做时,我都会出错

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个答案

韦宏扬
2023-03-14

我已经解决了。请将每个字符变量用单引号引起来,例如:(“$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'" );
 类似资料:
  • 我试图从MySQL移动到Oracle和我的一个查询最初看起来像这样 然而,当我在ORACLE中运行同一个查询时,只做了一个小改动。。。 它给了我以下错误: SQL错误:ORA-00933:SQL命令未正确结束00933。00000-“SQL命令未正确结束” Oracle SQL Developer工具强调了声明部分的一个问题 作为t1 我读了一些其他的问题,提到在Oracle语句的某些部分周围放置

  • 我遇到了一个甲骨文错误, ORA-00933:SQL命令未正确结束 有以下几点。 我在每个语句末尾的“/”前面加了分号。 有什么建议我可能错了吗?

  • 线程“main”java.SQL.sqlsyntaxerrorexception:ORA-00933:SQL命令未正确结束 我怀疑我们不能为Oracle查询提供“as employees_data”,那么我做错了什么?

  • 我正在尝试创建一个where子句作为参数传递给Oracle命令,事实证明这比我想象的要困难得多。我想做的是根据应用程序中的用户输入创建一个大型where查询。其中query是语句的单个参数,并且将包含多个and、OR条件。但这里的代码并不完全符合我的要求: 如果我将下面的行更改为我想要的结果类型,那么我会得到一个错误"ORA-00933:SQL命令未正确结束": 我的问题是,如何在不导致此错误的情

  • 目的是仅当同一个表中不存在相同的记录时,才将记录插入表中。所以,我将该表的值存储在如下游标中:- 现在,我将使用如下的内部联接从表中删除记录- 执行此删除语句时,我收到错误-'ORA-00933:SQL命令未正确结束' 如果我能够从表中删除记录,我将使用以下代码从游标数据中插入相同的记录到相同的表中:- 我的目标是,仅当同一个表中不存在相同的记录时,才将记录插入表中。 请指导如何处理delete语

  • 问题内容: 当我输入这个 我收到关注错误 ORA-00933:SQL命令未正确结束 问题答案: 在Oracle中,您不能像这样指定多组值(我猜您来自允许该语法的MySQL背景)。最简单的方法是生成多个语句 您还可以使用单个语句插入多行