Tag: oracle

带有游标的Oracle Pro * C更新表失败

我有这样一张桌子: CREATE TABLE book_info ( book_id VARCHAR(32) not null, title varchar(255) not null, author varchar(255) not null, folder_path varchar(255) not null, primary key(book_id) ); 我在上面插入这些数据: insert into book_info values(‘BOOK1’, ‘APUE’, ‘Richard Stevens’, ‘/home/user1/unix_programming_books’); insert into book_info values(‘BOOK2’, ‘Unix Network programming’, ‘Richard Stevens’, ‘/home/user1/unix_programming_books’); insert into book_info values(‘BOOK3’, ‘Core Python Applications Programming’, ‘Wesley J. Chun’, ‘/home/user1/python_programming_books’); […]

Oracle 11g中rowid的长度是固定的吗?

是否可以配置Oracle 11g安装,使其长度超过18个字符? 调查如果客户配置的rowid超过18个字符,可能导致本地无法生成的错误的可能原因。 该表没有索引。 不久之后使用rowid删除给定的记录,但可能在其间插入其他记录。

编译OCILIB OCI包装库的问题

我正在尝试在ocilib3.8.1/demo编译ocilib3.8.1/demo 。 在成功安装了ocilib库之后,我在下面编译了demo source conn.c: #include “ocilib.h” int main(void) { OCI_Connection *cn; if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT)) return EXIT_FAILURE; cn = OCI_ConnectionCreate(“db”, “usr”, “pwd”, OCI_SESSION_DEFAULT); printf(“Server major version : %i\n”, OCI_GetServerMajorVersion(cn)); printf(“Server minor version : %i\n”, OCI_GetServerMinorVersion(cn)); printf(“Server revision version : %i\n\n”, OCI_GetServerRevisionVersion(cn)); printf(“Connection version : %i\n\n”, OCI_GetVersionConnection(cn)); OCI_Cleanup(); return EXIT_SUCCESS; } 使用gcc编译: $gcc -Wall conn.c […]

如何从OCI调用ORACLE函数?

我可以通过构造命令的SQL命令在C程序中通过OCI调用ORACLE存储过程,这里是我的代码的简短片段: /* build sql statement calling stored procedure */ strcpy ( sql_stmt, “call get_tab_info(:x)” ); rc = OCIStmtPrepare(p_sql, p_err, sql_stmt, (ub4) strlen (sql_stmt), (ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT); 但是如何使用以下签名构建对ORACLE函数的调用(在我的C程序中): CREATE OR REPLACE FUNCTION get_seq_number (p_table_name IN VARCHAR2, p_seq_type IN VARCHAR2) RETURN NUMBER IS 要在PL / SQL中调用该函数,我会使用例如: v_seq := get_seq_number(v_tabname, v_seqtype); 如何构造SQL字符数组(sql_stmt)来调用我的C程序中的ORACLE函数?

ORA-01795:列表中的最大表达式数为1000,如何拆分字符串

如何拆分以下字符串? Ax IN (changeList), changeList具有以下值,因此它使得子句如下: Ax IN (HEXTORAW(‘1E2956B9266F11DDA85810000000C959’),HEXTORAW (‘ADD834AD6A3911DF923C10000000C959’),HEX……….. 上面的IN有超过1000个值,因此ORA-01795错误,如何修改它以便我拥有 AX IN(id1,.. id999)或Ax IN(id1000,…),任何c代码都可以帮助我……

如何在构建过程之后在cmake中编译其他源文件

我在cmake for windows中有一个项目,其中包含一个名为database.proc的Pro * C源文件,我的目标是从.proc文件生成一个C源文件,并将其添加到要与其他源文件链接的项目中,我试图添加一个自定义命令来实现这一点,但没有成功 add_custom_command(TARGET myproj OUTPUT PRE_LINK COMMAND ${PROC} iname=${PROJECT_SOURCE_DIR}/connection.proc SQLCHECK=SYNTAX MODE=ANSI IRECLEN=255 ORECLEN=255 ONAME=${PROJECT_SOURCE_DIR}/connection.c COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS} ${PROJECT_SOURCE_DIR}/connection.c ) 有办法做到这一点吗?

什么是pro * c?

这有用吗? 我们如何从数据库中访问数据?

适用于SIGSEGV / SIGABRT和朋友的Oracle Pro * C / OCI安装处理程序 – 为什么以及如何禁用?

当使用Pro * C(Oracle for C-Code的嵌入式SQL预处理器)或OCI时,我注意到connect / init例程安装了一些信号处理程序。 这意味着之前 EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dbspec ; 或者a OCIEnvNlsCreate() 我可以validation,例如这些信号有以下处理程序: No NAME Pointer SA_SIGINFO SIG_DFL SIG_IGN ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― 1 SIGHUP (nil) false true false 2 SIGINT (nil) false true false 3 SIGQUIT (nil) false true false 4 SIGILL (nil) false true false 5 SIGTRAP (nil) […]