【发布时间】:2014-02-07 17:50:03
【问题描述】:
错误代码:904 消息:Oracle JDBC 驱动程序 ORA-00904::无效标识符 SQLState:42S22
这个函数有什么问题?我用插入调用它并收到 904 错误?
<!---- create ---->
<cffunction name="create" returntype="void">
<cfargument name="dsn" type="any" required="true" />
<cfargument name="FNAME" type="string" required="true" />
<cfargument name="LNAME" type="string" required="true" />
<cfargument name="EMAIL" type="string" required="true" />
<cfargument name="PHONE" type="string" required="true" />
<cfargument name="TITLE" type="string" required="true" />
<cfargument name="EXPERTISE" type="string" required="true" />
<cfargument name="TASCS" type="string" required="true" />
<cfargument name="LEADERSHIP" type="string" required="true" />
<cfargument name="MANAGEMENT_TEAM" type="string" required="true" />
<cfargument name="PARTNERS" type="string" required="true" />
<cfargument name="CONSULTANTS" type="string" required="true" />
<cfargument name="MEDIA_EVENTS" type="string" required="true" />
<cfargument name="WEBSITE" type="string" required="true" />
<cfargument name="ORGANIZATION" type="string" required="true" />
<cfargument name="PHOTO_NAME" type="string" required="true" />
<cfargument name="CV_FILE" type="string" required="true" />
<cfargument name="BIO" type="string" required="true" />
<cfset var qry="" />
<!----TODO: Below code is for table without auto increment enabled for primary key .Change the query Appropriately---->
<!---- insert record ---->
<cftry>
<cfquery name="qry" datasource="#dsn.getName()#">
INSERT INTO DIRECTORY
(
DIRECTORY_ID,
FNAME,
LNAME,
EMAIL,
PHONE,
TITLE,
EXPERTISE,
TASCS,
LEADERSHIP,
MANAGEMENT_TEAM,
PARTNERS,
CONSULTANTS,
MEDIA_EVENTS,
WEBSITE,
ORGANIZATION,
BIO,
CREATEDBY,
ISACTIVE
)
VALUES
(
DIRECTORY_SEQ.nextval,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.FNAME#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.LNAME#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.EMAIL#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.PHONE#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.TITLE#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.EXPERTISE#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.TASCS#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.LEADERSHIP#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.MANAGEMENT_TEAM#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.PARTNERS#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.CONSULTANTS#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.MEDIA_EVENTS#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.WEBSITE#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#ARGUMENTS.ORGANIZATION#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_LONGVARCHAR" value="#ARGUMENTS.BIO#" null="false" />,
<cfqueryparam cfsqltype="CF_SQL_TIMESTAMP" value="#now()#" null="false" />,
1
)
</cfquery>
<cfcatch type="Any" >
<cfdump var="#CFCATCH#" output="C:\data\directorydao_create.txt">
</cfcatch>
</cftry>
</cffunction>
directorydao_create.txt 文件中出现的错误。
struct
Cause:
[struct]
ErrorCode: 904
Message: [Macromedia][Oracle JDBC Driver][Oracle]ORA-00904: "BIO": invalid identifier
SQLState: 42S22
StackTrace: java.sql.SQLSyntaxErrorException: [Macromedia][Oracle JDBC Driver][Oracle]ORA-00904: "BIO": invalid identifier
at macromedia.jdbc.oraclebase.ddca.b(Unknown Source)
at macromedia.jdbc.oraclebase.ddca.a(Unknown Source)
at macromedia.jdbc.oraclebase.ddb9.b(Unknown Source)
at macromedia.jdbc.oraclebase.ddb9.a(Unknown Source)
at macromedia.jdbc.oracle.ddm.q(Unknown Source)
at macromedia.jdbc.oraclebase.ddem.v(Unknown Source)
at macromedia.jdbc.oraclebase.ddem.r(Unknown Source)
at macromedia.jdbc.oraclebase.dddg.execute(Unknown Source)
at macromedia.jdbc.oraclebase.dddk.execute(Unknown Source)
at coldfusion.server.j2ee.sql.JRunPreparedStatement.execute(JRunPreparedStatement.java:101)
at coldfusion.sql.Executive.executeQuery(Executive.java:1458)
【问题讨论】:
-
Oracle 似乎在说 BIO 列不存在。如果您使用 select
BIO from DIRECTORY运行 CFQuery,它会正确运行吗?
标签: oracle coldfusion