Never mind, folks--sorry for the interruption. I tried just putting the SQL command--array element and all--into the "do" statement, and got rid of the $sql_cmd variable, and it worked.
I guess you can take those error messages literally sometimes ... -----Original Message----- From: Laurie Vien [mailto:[EMAIL PROTECTED] Sent: Thursday, March 11, 2004 5:38 PM To: '[EMAIL PROTECTED]' Subject: "identifier too long"? I am on the very last step of my Perl script. Have read a bunch of records into arrays, using a 'select table handler' with DBI. Now I want to cycle back through the data in those arrays, and based on the value of one specific field, update a field in the corresponding database record. Because I need to use one of the array elements as part of the WHERE clause of the UPDATE statement, I built the SQL statement in a scalar first, then passed that scalar to the "$dbh->do()" command, as follows. (Due to the nature of the error message, I'm going to use exact table and var names): $sql_cmd = "\"UPDATE Chunkmail SET Contribute_flag=1 WHERE Chunkmail_ID=" . @contribute_flag[$_] . "\""; $rslt = $dbh->do($sql_cmd); Executing the "do" causes the following error: DBD::Oracle::db do failed: ORA-00972: identifier is too long (DBD ERROR: OCIStmtExecute) [for Statement ""UPDATE Chunkmail SET CONTRIBUTE_FLAG=1 WHERE CHUNKMAIL_ID=1""] at testprog.pl line 161. Is is complaining that my Update statement is too long?? If not, what? If so, do I need to make the names of my arrays shorter? What is the limit? Thank you--hope someone else is still at work! Laurie A. Vien Sr. Programmer/Analyst Ben & Jerry's Homemade, Inc.
