环境: Windows XP SP2 + Oracle 9.2.0.8
VC安装路径: E:Program FilesMicrosoft Visual StudioVC98
ORACLE_HOME:E
racleora91
alter system set plsql_native_library_dir = 'E
racleora91plsql
ative_by_Walter';
alter session set plsql_compiler_flags='NATIVE';
alter system set plsql_native_make_file_name= 'E
racleora91plsqlspnc_makefile.mk';
alter system set plsql_native_c_compiler='E:Program FilesMicrosoft Visual StudioVC98BinCL.EXE';
alter system set plsql_native_make_utility='E:Program FilesMicrosoft Visual StudioVC98BinNMAKE.EXE /NOLOGO';
alter system set plsql_native_linker='E:Program FilesMicrosoft Visual StudioVC98BinLINK.EXE';
alter procedure test.native_com compile;
show errors;
报错:
PLS-00923: 本机编译失败:make:spdtexmk:E
racleora91plsqlspnc_makefile.mk(70) : fatal error U1001: syntax error : illegal character '.' in macro
看起来是spnc_makefile.mk有问题,贴出其内容:
# Makefile for natively compiled PL/SQL sources.
#
#Copyright (c) 1995, 2000 by Oracle Corporation
#NAME
#pnc_makefile.mk
#DESCRIPTION
#This file is used to compile C files generated
#as a result of native compilation of PL/SQL
#programs.
#
#
#MODIFIED (MM/DD/YY)
# sylin07/16/02 - 2451985 Rename INCLUDE to NCOMPINCLUDE
# sylin07/16/02 - 2451978 Remove comments referring to gcc
# mvemulap 06/21/02 - remove VCINCLUDE; depend on system INCLUDE and LIB
# mvemulap 04/09/01 - OPTIMIZE=-xO1
# mvemulap 04/05/01 - always make the target
# mvemulap 03/16/01 - fix merge error
# nmantrav 01/03/01 - Use SUNWspro6.1 cc.
# mvemulap 01/12/01 -remove .c file
# kmuthukk 12/06/00 - revert back to unoptimized as default
# kmuthukk 12/04/00 - include path must have $ORACHOME/plsql/public
# kmuthukk 12/04/00 - set optimize to -O2
# kmuthukk 12/04/00 - use ORACLE_HOME instead of SRCHOME
# mvemulap 10/27/00 - no echo
# kmuthukk 04/12/99 - compile optimized
# mvemulap 03/13/99 - creation
I_SYM=/I
PLSQLHOME=$(ORACLE_HOME)/plsql/
ORACLELIB=$(ORACLE_HOME)/lib/
# PLSQL include
PLSQLINCLUDE=$(PLSQLHOME)include/
PLSQLINCLUDEH=$(I_SYM)$(PLSQLINCLUDE)
# PLSQL public
PLSQLPUBLIC=$(PLSQLHOME)public/
PLSQLPUBLICH=$(I_SYM)$(PLSQLPUBLIC)