OCI 程序能把number列bind, define成char*吗?
benh 2008-10-13 02:15:15 就是把表的number列, 和程序中char*表示的string关联起来。
现在我可以从表中把number列select出,成为char*类型的字符串。但是尝试insert时候,试图把char*类型字符串直接OCIBindByName时候,OCIStmtExec却不正确。
// select 程序, 用SQLT_CHR指定程序变量类型为character string。
sprintf(sSQL,"select row_id, row_num from t_num where row_id=:x");
rc = OCIDefineByPos(p_sql, &p_dfn, p_err, 2, (dvoid *) &m_rownum,
sizeof(m_rownum), SQLT_CHR, (dvoid *) 0, (ub2 *)0,
(ub2 *)0, OCI_DEFAULT);
// insert 程序, OCIBindByName时,同样用SQLT_CHR指定类型从char*到Number的转换,却不正确。
从文档看,应该支持这样的直接转换阿? 转换格式需要制定参数吗? 为什么select时候就不用格式的参数呢?
请高手指教,最好给我一点代码示例。谢谢