在sql*plus下直接编译存储过程,不知道系统将存储过程存放到那个文件。我想使用WRAP对我的过程代码加密,但要有文件参数。请高手指教。
解决方案 »
- dbms_datapump导出dmp文件时NAME_LIST的长度超过了4000该怎么办
- powerdesigner修改已有数据的oracle结构,总是报错,约束,视图,触发器,包都不好使
- PL/SQL Developer 调试的时候,100%崩溃退出
- 执行select count(EntID) 时间很长 数据100W
- 关于序列currval
- oracle 同时修改多条记录的多个字段
- 如何得到oracle里一条sql语句执行消耗的时间
- 如何清理日志文件?
- 创建数据库时说 通道错误???
- 请教SQL语句
- request: set autotrace traceonly;response:Cannot SET AUTOTRACE ??? what is the matter?
- 根据时间段查寻出所有变更的表名
然后在 window2000 cmd 或win98 dos 下,
set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
然后
wrap iname=pro.sql oname=pro.plb然后回到 sql> 下sql>@d:\pro.plb 回车
这样就可以咯。
一、dos下
1、准备工作
C:>set NLS_LANG=us
在c:下创建wl.sql文件,内容如下:
create or replace procedure wl
(execlog VARCHAR2)
AS
v_sql VARCHAR2(2000);
v_cnt INTEGER;
BEGIN
v_sql:='SELECT count(1)
FROM USER_ALL_TABLES
WHERE table_name=''EXECLOG''';
EXECUTE IMMEDIATE v_sql INTO v_cnt;
IF v_cnt=0 THEN
v_sql:='CREATE TABLE execlog(execdate date,execlog varchar2(255))';
EXECUTE IMMEDIATE v_sql;
END IF;
v_sql:='INSERT INTO execlog values(Sysdate,'''||execlog||''')';
EXECUTE IMMEDIATE v_sql;
END;
2、加密
C:>wrap iname=wl.sql
3、恢复环境
C:>C:>set NLS_LANG=二、sql下看看效果
SQL> execute wl('1 live you ');