$ proc sample9.pc SQLCHECK=SEMANTICS
Pro*C/C++: Release 11.2.0.1.0 - Production on Tue Jan 8 15:18:40 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
System default option values taken from: /usr/local/oracle/product/11.2.0/dbhome_1/precomp/admin/pcscfg.cfg
Error at line 116, column 19 in file sample9.pc BEGIN calldemo.get_employees ..................1 PLS-S-00201, identifier 'CALLDEMO.GET_EMPLOYEES' must be declared Error at line 116, column 19 in file sample9.pc BEGIN calldemo.get_employees ..................1 PLS-S-00000, Statement ignored Semantic error at line 116, column 13, file sample9.pc: BEGIN calldemo.get_employees ............1 PCC-S-02346, PL/SQL found semantic errors
$
錯誤原因:需要指定 “CALLDEMO.GET_EMPLOYEES” 的所屬用戶。
解決辦法:在預編譯時加上 userid=name/passwd@remoteDB (如果是連接到本地數據庫則不需要@remoteDB)。
如上面的例子:
$ proc sample9.pc SQLCHECK=SEMANTICS userid=scott/tiger
Pro*C/C++: Release 11.2.0.1.0 - Production on Tue Jan 8 15:25:20 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
System default option values taken from: /usr/local/oracle/product/11.2.0/dbhome_1/precomp/admin/pcscfg.cfg
$
編譯通過!
原文地址:http://blog.csdn.net/iw1210/article/details/8481409