尝试在Linux中编译Pro*C程序时出错
我正在使用尝试在Linux中编译Pro*C程序时出错,c,linux,database,oracle,embedded-sql,C,Linux,Database,Oracle,Embedded Sql,我正在使用Pro*C程序和SQL进行练习,我有以下简单的程序: #include <stdio.h> #include <sqlca.h> char user_id[20]="test/test" char emp_name[20]; main() { EXEC SQL CONNECT :userid; printf("Connected\n"); EXEC SQL DECLARE emp_cursor
Pro*C
程序和SQL
进行练习,我有以下简单的程序:
#include <stdio.h>
#include <sqlca.h>
char user_id[20]="test/test"
char emp_name[20];
main()
{
EXEC SQL CONNECT :userid;
printf("Connected\n");
EXEC SQL DECLARE emp_cursor CURSOR FOR
SELECT name
FROM badge;
EXEC SQL OPEN emp_cursor;
printf("Employees---------------");
EXEC SQL WHENEVER NOT FOUND DO break;while (1)
{
EXEC SQL FETCH emp_cursor INTO :emp_name;
printf("%s\n", emp_name);
}
EXEC SQL CLOSE emp_cursor;
EXEC SQL COMMIT WORK RELEASE;
exit(0);
}
但是,当我尝试编译源代码时,出现以下错误:
proc test.pc
过程:符号查找错误:过程:未定义符号:kgsuglo_
有人能帮我解决这个错误吗?我在
instantclient precomp linux.x64-12.1.0.1.0.zip中遇到了这个问题,并通过升级到instantclient precomp linux.x64-12.1.0.2.0.zip解决了这个问题。哪个版本的Oracle/Pro*C?即时客户端还是完全安装?您的环境设置正确吗?设置并导出了路径和LD_库路径?正确导出了路径和LD_库路径。有没有办法检查Oracle/Pro*C的版本和安装类型?我正在使用一个已经存在的测试环境,proc
是否显示横幅,其中包括版本和系统默认路径?或者它是否在达到这一点之前就失败了?如果不是,sqlplus
横幅显示什么?如果您的ORACLE\u HOME失败,您的路径中的条目(是否有ORACLE\u HOME/bin)可能会告诉您。proc
在显示横幅之前失败,而sqlplus
正常工作OK,但是SQL*Plus显示的是什么版本信息?不知道你是怎么让Pro*C这么早就失败的,没有任何进一步的信息显示。
CREATE TABLE BADGE
(
badge_id NUMBER PRIMARY KEY,
name VARCHAR(20),
surname VARCHAR(20) NOT NULL,
birthday DATE
);