• 主页
  • Oracle 基础和管理
  • Oracle 高级技术
  • Oracle 认证与考试
  • 职位交流

初学pro*c,遇到i386ld fatal: Symbol referencing errors. No output written to a.out问题

vc8 2004-12-28 03:07:27
#include <stdio.h>

EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[20];
VARCHAR password[20];
int emp_number;
float ixyd_s;
float ixyd_e;
float itze;
EXEC SQL END DECLARE SECTION;

EXEC SQL INCLUDE sqlca;

void sqlerror( );
void main( ){
strcpy( username.arr, "dbmanager" );
username.len = strlen( username.arr );
strcpy( password.arr, "fhic" );
password.len = strlen( password.arr );

EXEC SQL WHENEVER SQLERROR DO sqlerror( );
EXEC SQL connect: username IDENTIFIED BY:password;
printf( "/nConnect to ORACLE as user %s/n", username.arr );
while( 1 ){
printf( "/nEnter Xyd_s number(0 to quit ):");
scanf( "%d", &ixyd_s );
if( 0 ==ixyd_s ) break;
EXEC SQL WHENEVER NOT FOUND GOTO notfound;
EXEC SQL SELECT xyd_s, xyd_e,tze INTO: ixyd_s, :ixyd_e,:itze FROM xydsz WHERE xyd_s =:ixyd_s;
printf( " /n/n Xyd_s/tXyd_e/ttze/n" );
pirntf( "-----/t----/t-----/n" );
printf( "%.0f/t%.0f/t%.0f\n");
continue;
notfound:
printf( "/nNot a valid xyd_s./n" );
}
printf( "/n Have a good Day." );
EXEC SQL COMMIT WORK RELEASE;
exit( 0 );
}
void sqlerror( )
{
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf( "/n Oracle error detected./n" );
printf( "/n%.70s/n",sqlca.sqlerrm.sqlerrmc );
EXEC SQL ROLLBACK RELEASE;
exit( 1 );
}
首先编译成.c文件
$proc PARSE=NONE myproc1.pc
然后编译.c文件
$cc -o myproc1 myproc1.c $ORACLE_HOME/lib/libclntsh.so
报入标题的错误,请问高手如何解决?多谢
...全文
212 点赞 收藏 6
写回复
6 条回复
vc8 2004年12月28日
呵呵,多谢
回复 点赞
ORARichard 2004年12月28日
那只有帮你顶了
回复 点赞
vc8 2004年12月28日
好像不是
回复 点赞
ORARichard 2004年12月28日
不懂pro*c,
是不是下面这句有问题
EXEC SQL SELECT xyd_s, xyd_e,tze INTO: ixyd_s, :ixyd_e,:itze FROM xydsz WHERE xyd_s =:ixyd_s;

INTO:是不是该和冒号空一格呢
回复 点赞
vc8 2004年12月28日
我用的系统是openserver 5.05 oracle7.3.4
回复 点赞
vc8 2004年12月28日
没有人遇到吗
回复 点赞
发动态
发帖子
Oracle
创建于2007-09-28

6417

社区成员

5.4w+

社区内容

Oracle开发相关技术讨论
社区公告
暂无公告