Skip to main content
WolfShade
Legend
Apr 19, 2018 7:28 PM UTC
Question

Oracle 11g: Issue with INSERT ALL

Hello, all,

I'm trying to migrate data from an old schema to a new schema via ColdFusion, and I'm getting an error message.

<cfquery name="old_data" datasource="#application.dsn_old#">

SELECT colA, colB, colC

FROM old_table

</cfquery>

<cfquery name="new_data" datasource="#application.dsn_new#">

INSERT ALL

     <cfoutput query="old_data">

          into new_table(aCol, bCol, cCol)

               values(colA, colB, colC)

     </cfoutput>

SELECT * from dual;

</cfquery>

904: ORA-00904: "colC": Invalid identifier

If I CFDUMP the first query, all the data is there.  Why does Oracle think that colC is invalid?

V/r,

^ _ ^

This topic is closed to new replies. Start a new post to keep the conversation going.

4 replies

EddieLotter
Inspiring
Apr 24, 2018 1:29 PM UTC

Sorry I'm late to the party, but surely line 9 should be:

values(#colA#, #colB#, #colC#)

If any of them are not numeric, remember to include quotes.

Cheers

Eddie

Translate
WolfShade
WolfShadeAuthor
Legend
Apr 24, 2018 1:56 PM UTC

I actually revisited this during a break I was taking, and the solution turned out to be putting the values in CFQUERYPARAM tags.

V/r,

^ _ ^

PS:  Late or no, always good to hear your input.

Translate
EddieLotter
Inspiring
Apr 25, 2018 1:21 PM UTC

cfqueryparam is definitely the more robust option. Glad you got it sorted out.

Cheers

Eddie

Translate
WolfShade
WolfShadeAuthor
Legend
Apr 19, 2018 9:12 PM UTC

Never mind.  Gave up the ghost.  Too much time spent on it, and I need to get stuff done.  I just bit the bullet and did individual CFQUERY within the CFOUTPUT, cringing all the way.  It worked.


V/r,

^ _ ^

Translate