- 论坛徽章:
- 0
|
20可用积分
报的错误:
=================================
[oracle@oracle11gTux1 lessons]$ proc ./gg.pc
Pro*C/C++: Release 11.1.0.6.0 - Production on Thu Jun 25 12:11:13 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
System default option values taken from: /u01/oracle/precomp/admin/pcscfg.cfg
Error at line 39, column 37 in file ./gg.pc
EXEC SQL DECLARE emp_cursor CURSOR FOR
....................................1
PLS-S-00201, identifier 'EMP' must be declared
Error at line 39, column 37 in file ./gg.pc
EXEC SQL DECLARE emp_cursor CURSOR FOR
....................................1
PLS-S-00000, SQL Statement ignored
Semantic error at line 39, column 37, file ./gg.pc:
EXEC SQL DECLARE emp_cursor CURSOR FOR
....................................1
PCC-S-02346, PL/SQL found semantic errors
[oracle@oracle11gTux1 lessons]$
==================================
我的源文件:
=============
[oracle@oracle11gTux1 lessons]$ cat ./gg.pc
#define USERNAME "pw"
#define PASSWORD "pw"
#define SERVICE "wilson"
#include <stdio.h>
#include <stdlib.h>
#include "sqlca.h"
EXEC SQL INCLUDE SQLCA;
//typedef enum exx exx;
EXEC SQL BEGIN DECLARE SECTION;
char *username=USERNAME;
char *passwd=PASSWORD;
char *service=SERVICE;
char name[20];
int age;
float salary;
EXEC SQL END DECLARE SECTION;
void sqlerr()
{
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\n%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK WORK RELEASE;
exit(1);
}
int main()
{
EXEC SQL WHENEVER SQLERROR DO sqlerr();
EXEC SQL CONNECT :username IDENTIFIED BY :passwd USING :service;
EXEC SQL DECLARE emp_cursor CURSOR FOR
SELECT NAME,AGE,SALARY FROM EMP;
EXEC SQL OPEN emp_cursor;
while(true)
{
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH emp_cursor
INTO :name, :age, :salary;
printf("\n%s",sqlca.sqlerrd[2]);
printf("\n%.*s\n",name,age,salary);
}
EXEC SQL CLOSE emp_cursor;
EXEC SQL COMMIT WORK RELEASE;
//if (sqlca.sqlcode == 0)
// printf("\n Connected!\n");
//else
// printf("\n%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
return 0;
}
[oracle@oracle11gTux1 lessons]$
===================
我用PW用户在sql*plus中数据库很正常,而且PW用户有一张表"EMP".
[ 本帖最后由 simhare 于 2009-6-25 17:58 编辑 ] |
|