我写了好多个存储过程,在一个SQL文件中存放,最后又一个存储过程的查询语句变换了一下,在SELECT中放了几个子查询,结果是其他的存储过程加密正常,最后的这个存储过程没有加密!怎么解决!
多谢了

解决方案 »

  1.   

    在中文系统中运行要先在dos下运行
    set NLS_LANG = AMERICAN_AMERICA.USACII7
    或修改注册表将local_machine\software\oracle\home0下的nls_lang改为NA
    原来是SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    然后运行wrap iname=inputfile.sql [oname=outputfile.plb]另:从sql*plus执行一个文本里的sql脚本,可以用
    C:\> sqlplus uid/pwd @mysql.sql
    在sql*plus下运行@C:\outputfile.plb。
    @%ORACLE_HOME%\rdbms\admin\ outputfile.plb;
      

  2.   


    C:\>set NLS_LANG = AMERICAN_AMERICA.USACII7C:\>wrap iname=c:\YDSJCL.SQLPL/SQL Wrapper: Release 9.0.1.1.1- Production on Sun Jan 16 11:44:50 2005Copyright (c) Oracle Corporation 1993, 2001.  All Rights Reserved.Processing c:\YDSJCL.SQL to YDSJCL.plb
    PSU(103,1,14,16):Encountered the symbol "SELECT" when expecting one of the follo
    wing:   ( - + case mod not null others <an identifier>
       <a double-quoted delimited-identifier> <a bind variable> avg
       count current exists max min prior sql stddev sum variance
       execute forall merge time timestamp interval date
       <a string literal with character set specification>
       <a number> <a single-quoted SQL string> pipePSU(103,1,14,66):Encountered the symbol ")" when expecting one of the following:
       . ( * @ % & - + ; / at for mod rem <an exponent (**)> and or
       group having intersect minus order start union where connect
       ||PSU(103,1,38,15):Encountered the symbol "NULL" when expecting one of the followi
    ng:   ( <an identifier> <a double-quoted delimited-identifier>
       table thePSU(103,1,43,6):Encountered the symbol "COMMIT"
    PSU(103,1,52,7):Encountered the symbol "IF" when expecting one of the following:
       ; <an identifier> <a double-quoted delimited-identifier>
       delete exists prior <a single-quoted SQL string>PL/SQL Wrapper error: Compilation error(s) for:
    CREATE OR REPLACE PROCEDURE PROC_TAB_DEPART_COUNT
    Outputting source and continuing.C:\>提示好像是存储过程有什么问题,但是该存储过程直接编译通过,而且运行正常,就是怎么回事?以上问题有谁见过么?
    请指教!
      

  3.   

    要求程序的第一行必须是以下语句:
    CREATE OR REPLACE PROCEDURE PROC_TAB_DEPART_COUNT

     .................function .....
    ..................package .........
    你可能没这条语句。
      

  4.   

    修改注册表将local_machine\software\oracle\home0下的nls_lang改为NA
    然后重启数据库!
    加密存储过程
    将注册表改回初始值!