Hi Gurus, I am facing a problem.
I have a table with the following description: SQL> desc wb_pseudo_fmly; Name Null? Type ----------------------------------------- -------- ---------------------------- SPPLR_NUM NOT NULL NVARCHAR2(10) DUNS_ID NVARCHAR2(12) SPPLR_NAME NVARCHAR2(35) REASON NOT NULL NVARCHAR2(80) CREATED_BY NOT NULL NVARCHAR2(50) CREATED_DT NOT NULL DATE I am using DBI/DBD for Oracle8.1.7. I am running the following query. I am basically preparing(using place holders) an SQL statement and then executing it. ********************************************************************** my($query) = "insert into wb_pseudo_fmly ". "(DUNS_ID,SPPLR_NUM,". "SPPLR_NAME,REASON,CREATED_BY,". "CREATED_DT) values(?,?,?,?,?,?)"; eval { $::DBH->prepare($query); $::DBH->execute("N'$duns_id'","N'$sup_num'", "N'$sup_name'","N'$reason'","N'MKTG'","'$::CUR_DATE'"); }; ********************************************************************** I get the following error: DBD::Oracle::st execute failed: ORA-12704: character set mismatch (DBD ERROR: OCIStmtExecute) Can someone please point me where I am wrong?? In the execute statement I have given "N" because my datatypes are NVARCHAR2. Do I need to give N or the DBD understands that automatically. Do I need to write the query somewhat differently. Please help. Thanks, Nilanjan