wrap加密可以将PL/SQL的代码实现部分隐藏,提高代码的安全性,如存储过程、函数、包等都隐藏。

wrap加密的方法有两种,下面以函数为例分别介绍一下:

方法一:

编写好函数后保存到 d:\testWrap.sql 文件

CREATE OR REPLACE FUNCTION testwrap RETURN VARCHAR2 IS
BEGIN
RETURN(to_char(SYSDATE, 'yyyy-mm-dd hh24:mi:ss'));
END testwrap;

打开cmd命令窗口,执行如下命令

D:\>dir test*
驱动器 D 中的卷没有标签。
卷的序列号是 A5EB-573A D:\ 的目录 2019/06/10 17:22 132 testwrap.sql
1 个文件 132 字节
0 个目录 184,808,128,512 可用字节 D:\>wrap iname=testwrap.sql PL/SQL Wrapper: Release 11.2.0.4.0- 64bit Production on 星期一 6月 10 17:25:03 2019 Copyright (c) 1993, 2009, Oracle. All rights reserved. Processing testwrap.sql to testwrap.plb D:\>dir test*
驱动器 D 中的卷没有标签。
卷的序列号是 A5EB-573A D:\ 的目录 2019/06/10 17:25 347 testwrap.plb
2019/06/10 17:22 132 testwrap.sql
2 个文件 479 字节
0 个目录 184,808,124,416 可用字节

执行后生成testwrap.plb文件,然后切换到sqlplus中执行 @d:testwrap.plb

该命令执行成功函数即创建并加密完成。

方法二:

直接调用dbms_ddl包的create_wrapped实现加密

BEGIN
dbms_ddl.create_wrapped('CREATE OR REPLACE FUNCTION testwrap RETURN VARCHAR2 IS
BEGIN
RETURN(to_char(SYSDATE, ''yyyy-mm-dd hh24:mi:ss''));
END testwrap;
');
END;

 使用这种方法加密需要注意符号的转译。

通过如上所述的两种方法,可以对存储过程、函数、包等加密,无法看到其具体实现。

Oracle存储过程、函数、包加密wrap的更多相关文章

  1. oracle存储过程函数

    1.函数 create or replace function get_Destroy_no return varchar2 is Result varchar2(50);begin SELECT m ...

  2. Oracle存储过程 函数 计算使用资源

    目录 存储过程与函数 存储过程的优势 存储过程 打印语句 选择语句 函数 计算使用资源 存储过程与函数 存储过程的优势 存储过程 /* 多行注释 */ -- 单行注释 //展示错误信息 show er ...

  3. hibernate调用oracle存储过程||函数

    pakeage dao.Impl; //调用函数FUN_GET(); public String get(String Id,String Name){ return getSession().cre ...

  4. oracle中函数和存储过程的区别和联系【转载竹沥半夏】

    oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...

  5. Oracle存储过程和自定义函数

    新博客文章链接,欢迎大家评论探讨 概述 存储过程和存储函数是指存储在数据库中供所有用户程序调用的子程序叫存储过程.存储函数. 异同点: 存储过程和存储函数的相同点:完成特定功能的程序. 存储过程和存储 ...

  6. oracle存储过程和存储函数&触发器

    oracle存储过程和存储函数 指存储在数据库中供所有用户程序调用的子程序叫存储过程,存储函数 存储过程和存储函数的相同点:完成特定功能的程序 存储过程和存储函数的区别:是否用return语句返回值 ...

  7. MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法

    在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...

  8. oracle中函数和存储过程的区别和联系

    oracle中函数和存储过程的区别和联系 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和 ...

  9. Oracle存储函数,存储过程

    一.Oracle存储函数:存储的PL/SQL语法块,完成特定的功能.1.语法: 函数关键字: function (1)创建函数 CREATE [OR REPLACE] FUNCTION <fun ...

  10. Oracle自定义函数和存储过程示例,自定义函数与存储过程区别

    参考资料:http://www.newbooks.com.cn/info/60861.html oracle自定义函数学习和连接运算符(||) 贴一段中文文档示例,应该就可以开始工作了: --过程(P ...

随机推荐

  1. Python - Django - 命名空间模式

    新建一个项目 app02 在 app02/ 下创建 urls.py: from django.conf.urls import url from app02 import views urlpatte ...

  2. Python中利用原始套接字进行网络编程的示例

    Python中利用原始套接字进行网络编程的示例 在实验中需要自己构造单独的HTTP数据报文,而使用SOCK_STREAM进行发送数据包,需要进行完整的TCP交互. 因此想使用原始套接字进行编程,直接构 ...

  3. kubernetes 【版本】

    kubernetes本身是一个集群,我们所说的kubernetes版本实际上指的是集群各个组件的版本. 有哪些组件有版本呢? https://kubernetes.io/docs/setup/rele ...

  4. Java连接MongoDB示例

    示例代码: package com.zifeiy.snowflake.handle.etl.mongodb; import java.util.ArrayList; import java.util. ...

  5. 04点睛Spring4.1-资源调用

    转发:https://www.iteye.com/blog/wiselyman-2210666 4.1 Resource spring用来调用外部资源数据的方式 支持调用文件或者是网址 在系统中调用p ...

  6. [OpenCV开发]OpenCV图像编码和解码 imencode和imdecode使用,用于网络传输图片

    在很多应用中,经常会直接把图片的二进制数据进行交换,比如说利用 socket 通信传送图片二进制数据,或者直接用内存数据库(例如 Redis)来传递图片二进制数据. 这个时候,当你的应用程序读到内存里 ...

  7. 高级UI-MD动画

    MD动画是谷歌推出的一种动画效果,其实现的效果能让用户看着很是舒服,符合MD动画的动画,有很强的用户交互体验 Touch Feedback(触摸反馈) 在触摸反馈这一块,用的最多的就是水波纹效果,而水 ...

  8. 《构建之法》——GitHub和Visual Studio的基础使用

    git地址 https://github.com/microwangwei git用户名 microwangwei 学号后五位 62214 博客地址 https://www.cnblogs.com/w ...

  9. LeetCode 1022. 从根到叶的二进制数之和(Sum of Root To Leaf Binary Numbers)

    1022. 从根到叶的二进制数之和 1022. Sum of Root To Leaf Binary Numbers 题目描述 Given a binary tree, each node has v ...

  10. js取小数点后两位数的方法

    四舍五入以下处理结果会四舍五入:toFixed( ) var num =2.446242342; num = num.toFixed(2); // 输出结果为 2.45 不四舍五入以下处理结果不会四舍 ...