存储过程返回中文码?知道存储过程名怎么查看存储过程代码
一、谁知道比较正式的数据库存储过程的代码注释规范
代码注释规范没有什么正式不正式的,只要能符合自己要求,对个人和公司有帮助的规范就是好的规范,我这有一个存储过程开头的规范的例子,希望对你有帮助,至于存储过程的代码语句注释像一般的程序代码注释一样,可以参照东软等大型公司的代码规范和注释。
/*
******************************************************************************
* Program Name:项目名称
*
* Program ID:存储过程名
*
* Commentary:公司信息
*
*$Revision:版本
*
*$Author:作者
*$Date:做成日
*
******************************************************************************
*/
CREATE PROCEDURE存储过程名
(
@TempTableInfo VARCHAR(150)
)
AS
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
-- Default behavior
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
SET CONCAT_NULL_YIELDS_NULL ON-- ON: NULL operation is NULL
SET ARITHABORT ON-- ON: Div 0, overflow is error
SET ANSI_PADDING ON-- ON: not truncate trailing space
SET ANSI_WARNINGS ON-- ON: warn NULL operation, and ARITHABORT ON
SET CURSOR_CLOSE_ON_COMMIT OFF-- ON: When COMMIT or ROLLBACK, cursor is automatically closed.
SET IMPLICIT_TRANSACTIONS OFF-- ON: use implicit transaction
SET XACT_ABORT ON-- ON: If error is occured, transaction is automatically rollbacked.
SET NOCOUNT ON-- ON: not display record count
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
-- Declaration of System Variables
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
-- for System Informations
DECLARE@rowcount INT--@@ROWCOUNT
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
-- Declaration of Users Variables
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
DECLARE@TableName VARCHAR(150)
DECLARE@str VARCHAR(8000)
DECLARE@str2 VARCHAR(8000)
DECLARE@Result INT
DECLARE@MasterDB VARCHAR(100)
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
-- Main Process
---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---
往下是存储过程的具体内容。
二、知道存储过程名怎么查看存储过程代码
使用SQL Server Management Studio在列表中查看即可。
步骤:
1、登录SQL Server Management Studio。
2、左边的树点击要查询的库左边的“+”,点开后会变成“-”,下同。
3、点击可编程性-存储过程。
4、如果是自定义的存储过程,如上图的dbo.p_test,则右键,然后点击修改。
5、然后就能看到存储过程体,如图:
6、如果是查看系统存储过程,在第3步后点击系统存储过程,然后找到要查的名字,同第4,5步即可。
三、PLSQL 表备注,存储过程里的中文都显示乱码,请问怎么处理
方法/步骤
登陆plsql,执行sql语句,输出的中文标题显示成问号????;条件包含中文,则无数据输出
输入sql语句select
*
from
V$NLS_PARAMETERS查看字符集,查看第一行value值是否为简体中文
进入注册表,依次单击HKEY_LOCAL_MACHINE
--->SOFTWARE
--->
ORACLE--->home(小编安装的是Oracle
11g,这里显示成KEY_OraDb11g_home1),找到NLS_LANG,查看数值数据是否为:SIMPLIFIED
CHINESE_CHINA.ZHS16GBK
如果以上设置都没有问题,那就要查看下环境变量的设置,查看是否有变量NLS_LANG,没有则新建该变量
新建变量,设置变量名:NLS_LANG,变量值:SIMPLIFIED
CHINESE_CHINA.ZHS16GBK,确定即可
6
退出plsql,重新登陆plsql。输入sql语句,执行,中文标题终于正常显示,也有数据输出了
四、oracle 如何将存储过程的代码隐藏
可以例用Oracle自带的Wrap工具实现,此工具在$ORACLE_HOME/BIN目录下,具体如下
1、设置字符集环境变量
set NLS_LANG=CHINESE_CHINA.ZHS16GBK
2、创建一个存储过程文件
在E:\下创建test.sql文件,内容如下:
create or replace procedure test1(i in number) as
begin
dbms_output.put_line('输入参数是'||to_char(i));
end;
3、加密
c:\> cd%ORACLE_HOME%\BIN
c:\>wrap iname=e:\test1.sql
PL/SQL Wrapper: Release 8.1.7.0.0- Production on Tue Nov 27 22:26:48 2001
Copyright(c) Oracle Corporation 1993, 2000.All Rights Reserved.
Processing test1.sql to test1.plb
4、运行test1.plb
sqlplus/nolog
SQL>conn TEST/TEST@db01
SQL>@e:\a.plb
过程已创建。
5、运行存储过程
SQL> set serveroutput on
SQL> execute test1(1);
输入参数是1
PL/SQL过程已成功完成。
6、查看存储过程的代码
SQL> select name,text from all_source where type='PROCEDURE' and name='TEST1';
结果:看不到其原码