如何得到存储过程/函数的参数列表?

昨天一同事问我, oracle 中如何得到存储过程和函数的参数列表?

SQL SERVER 2000中,可以通过查询INFORMATION_SCHEMA.PARAMETERS来实现:

SELECT
SPECIFIC_NAME,
PARAMETER_NAME,
DATA_TYPE,
PARAMETER_MODE
FROM INFORMATION_SCHEMA.PARAMETERS
ORDER BY SPECIFIC_NAME

SPECIFIC_NAME PARAMETER_NAME DATA_TYPE PARAMETER_MOD
———————————————- —————————— ——————- ————————
sp_QueryPONumDetailMaterialInfo @MaterialID varchar IN
sp_QueryPONumDetailMaterialInfo @StoredID varchar IN
sp_QueryPONumInfo @CustomerID char IN
sp_QueryPONumInfo @PONum varchar IN
sp_QueryPriceInfo @CustomerID char IN
sp_QueryPriceInfo @MaterialID varchar IN
sp_QueryStoredInfo @StoredID char IN
sp_QuerySubBomInfo @BomID varchar IN
sp_QueryUserAuth @LogonID varchar IN
sp_QueryUserAuth @Password varchar IN
sp_SelectSubBomInfo @BomID varchar IN
sp_SelectSubBomInfo @ProductNo varchar IN
sp_SelectSubBomInfo @CustomerID char IN
sp_SelectSubBomInfo @OrderTotal numeric IN
sp_UpdateAuthRight @LoginAccount varchar IN
sp_UpdateAuthRight @FunctionCode varchar IN (more…)

SQL SERVER中如何用SQL语句给表的栏位加注释

今天在北京上学的侄子问了我一个问题:SQL SERVER中如何用SQL语句给表的栏位加注释

关于注释这个问题,之前没用SQL语句去添加过,都是在Enterprise Manager里面添加的:(

查了一下资料,得知Microsoft在SQL Server™ 2000中引入了扩展属性,用户可在各种数据库对象上定义这些属性。这些扩展属性可用于存储与数据库对象有关的应用程序或站点特有的信息。

可以用sp_addextendedproperty将新扩展属性添加到数据库对象中。如果属性已经存在,则过程失败。

用法如下:

sp_addextendedproperty
[ @name = ] { ‘property_name’ }
[ , [ @value = ] { ‘value’ }
[ , [ @level0type = ] { ‘level0_object_type’ }
, [ @level0name = ] { ‘level0_object_name’ }
[ , [ @level1type = ] { ‘level1_object_type’ }
, [ @level1name = ] { ‘level1_object_name’ }
[ , [ @level2type = ] { ‘level2_object_type’ }
, [ @level2name = ] { ‘level2_object_name’ }
]
]
]
]

参数
[ @name = ] { ‘property_name’ }

要添加的属性名称。property_name 的数据类型为 sysname,它不能是 NULL。名称可能还包括空白或非字母数字字符串和二进制值。

注:property_name=’MS_Description’时,为添加注释

[ @value = ] { ‘value’ }

将要与属性相关联的值。value 的数据类型为 sql_variant,带有默认设置 NULL。value 的大小不能超过 7,500 字节;否则 SQL Server 会产生错误。

[ @level0type = ] { ‘level0_object_type’ }

用户或用户定义类型。level0_object_type 的数据类型为 varchar(128),其默认值为 NULL。有效的输入是 USER、TYPE 和 NULL。

[ @level0name = ] { ‘level0_object_name’ }

指定的 0 级对象类型的名称。level0_object_name 的数据类型为 sysname,其默认值为 NULL。

[ @level1type = ] { ‘level1_object_type’ }

1 级对象的类型。level1_object_type 的数据类型为 varchar(128),其默认值为 NULL。有效的输入是 TABLE、VIEW、PROCEDURE、FUNCTION、DEFAULT、RULE 和 NULL。

[ @level1name = ] { ‘level1_object_name’ }

指定的 1 级对象类型的名称。level1_object_name 的数据类型为 sysname,其默认值为 NULL。

[ @level2type = ] { ‘level2_object_type’ }

2 级对象的类型。level2_object_type 的数据类型为 varchar(128),其默认值为 NULL。有效的输入是 COLUMN、PARAMETER、INDEX、CONSTRAINT、TRIGGER 和 NULL。

[ @level2name = ] { ‘level2_object_name’ }

指定的 2 级对象类型的名称。level2_object_name 的数据类型为 sysname,其默认值为 NULL。

返回代码值
0(成功)或 1(失败)

注释

1.系统对象不允许有扩展属性。

2.对象是按级别区分的,0 级为最高,2 级为最低。当用户添加、更新或删除扩展属性时,必须指定所有更高级别的对象。例如,如果用户要向 1 级对象添加扩展属性,就必须指定所有 0 级信息。如果用户要向 2 级对象添加扩展属性,则必须提供关于 0 级和 1 级的所有信息。

3.在每个级别上,对象类型和对象名可唯一地标识对象。如果指定了一个对中的任一方,则必须指定另一方。

4.给定了有效 property_name 和 value,如果没有任何对象类型和名称,则属性属于当前数据库。如果指定对象类型和名称,则还必须指定父对象和类型。否则,SQL Server 会产生错误。

权限
db_owner 和 db_ddladmin 固定数据库角色的成员可以将扩展属性添加到任何对象中。用户可以为他们所拥有的对象添加扩展属性。然而,只有 db_owner 可以将属性添加到用户名称中。

示例

下面的示例给表”T1″的”ID”列添加注释:

CREATE table T1 (id int , name char (20))

GO

EXEC sp_addextendedproperty ‘MS_Description’, ‘Employee ID’, ‘user’, dbo, ‘table’, T1, ‘column’, id

另外

sp_updateextendedproperty:更新现有扩展属性的值。

sp_dropextendedproperty:除去现有的扩展属性。

FN_LISTEXTENDEDPROPERTY:检索现有扩展属性的值

oracle 中可用COMMENT语句给栏位加注释,如下:

COMMENT ON COLUMN employees.job_id
IS ‘abbreviated job title’;

删除注释:

COMMENT ON COLUMN employees.job_id IS ‘ ‘;

更详细的语法参考 oracle 文档

数据仓库构建实施方法及步骤(三)

4. 物理模型设计
这一步所做的工作是确定数据的存储结构,确定索引策略,确定数据存放位置,确定存储分配。

确定数据仓库实现的物理模型,要求设计人员必须做到以下几方面:
• 要全面了解所选用的数据库管理系统,特别是存储结构和存取方法。
• 了解数据环境、数据的使用频度、使用方式、数据规模以及响应时间要求等,这些是对时间和空间效率进行平衡和优化的重要依据。
• 了解外部存储设备的特性,如分块原则,块大小的规定,设备的I/O特性等。

4.1确定数据的存储结构
一个数据库管理系统往往都提供多种存储结构供设计人员选用,不同的存储结构有不同的实现方式,各有各的适用范围和优缺点,设计人员在选择合适的存储结构时应该权衡三个方面的主要因素:存取时间、存储空间利用率和维护代价。

4.2 确定索引策略
数据仓库的数据量很大,因而需要对数据的存取路径进行仔细的设计和选择。由于数据仓库的数据都是不常更新的,因而可以设计多种多样的索引结构来提高数据存取效率。

在数据仓库中,设计人员可以考虑对各个数据存储建立专用的、复杂的索引,以获得最高的存取效率,因为在数据仓库中的数据是不常更新的,也就是说每个数据存储是稳定的,因而虽然建立专用的、复杂的索引有一定的代价,但一旦建立就几乎不需维护索引的代价。 (more…)

数据仓库构建实施方法及步骤(二)

2.技术准备工作
这一阶段的工作包括:
• 技术评估
• 技术环境准备

这一阶段的成果是:
• 技术评估报告
• 软硬件配置方案
• 系统(软、硬件)总体设计方案

管理数据仓库的技术要求与管理操作型环境中的数据与处理的技术要求区别很大,两者所考虑的方面也不同。我们之所以在一般情况下总是将分析型数据与操作型数据分离开来,将分析型数据单独集中存放,也就是用数据仓库来存放,技术要求上的差异是一个重要原因。

2.1技术评估
进行技术评估,就是确定数据仓库的各项性能指标。一般情况下,需要在这一步里确定的性能指标包括:

• 管理大数据量数据的能力
• 进行灵活数据存取的能力
• 根据数据模型重组数据的能力
• 透明的数据发送和接收能力
• 周期性成批装载数据的能力
• 可设定完成时间的作业管理能力 (more…)

数据仓库构建实施方法及步骤(一)

一.数据仓库的特点及实施方法

数据仓库是面向主题的、集成的、不可更新的、随时间的变化而不断变化的,这些特点决定了数据仓库的系统设计不能采用同开发传统的OLTP数据库一样的设计方法。

数据仓库系统的原始需求不明确,且不断变化与增加,开发者最初不能确切了解到用户的明确而详细的需求,用户所能提供的无非是需求的大的方向以及部分需求,更不能较准确地预见到以后的需求。因此,采用原型法来进行数据仓库的开发是比较合适的,因为原型法的思想是从构建系统的简单的基本框架着手,不断丰富与完善整个系统。但是,数据仓库的设计开发又不同于一般意义上的原型法,数据仓库的设计是数据驱动的。这是因为数据仓库是在现存数据库系统基础上进行开发,它着眼于有效地抽取、综合、集成和挖掘已有数据库的数据资源,服务于企业高层领导管理决策分析的需要。但需要说明的是,数据仓库系统开发是一个经过不断循环、反馈而使系统不断增长与完善的过程,这也是原型法区别于系统生命周期法的主要特点。因此,在数据仓库的开发的整个过程中,自始至终要求决策人员和开发者的共同参与和密切协作,要求保持灵活的头脑,不做或尽量少做无效工作或重复工作。

二.数据仓库的设计步骤

数据仓库的设计大体上可以分为以下几个步骤:

• 概念模型设计
• 技术准备工作
• 逻辑模型设计
• 物理模型设计
• 数据仓库生成
• 数据仓库运行与维护 (more…)

[转载]数据库常见名词浅析

摘自:http://www.eygle.com/archives/2005/01/eoeauauecei.html

Data Warehouse
本世纪80年代中期,”数据仓库之父”William H.Inmon先生在其《建立数据仓库》一书中定义了数据仓库的概念,随后又给出了更为精确的定义:数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的、不可修改的数据集合。与其他数据库应用不同的是,数据仓库更像一种过程,对分布在企业内部各处的业务数据的整合、加工和分析的过程。而不是一种可以购买的产品。

Data mart
数据集市,或者叫做”小数据仓库”。如果说数据仓库是建立在企业级的数据模型之上的话。那么数据集市就是企业级数据仓库的一个子集,他主要面向部门级业务,并且只是面向某个特定的主题。数据集市可以在一定程度上缓解访问数据仓库的瓶颈。

ODS(Operational Data Store)

操作数据存储,是用于支持企业日常的全局应用的数据集合,保存在ODS中的数据具有四个基本特点:面向主题的,集成的,可变的,数据是当前或接近当前的。 (more…)

[转载]什么是数据仓库?

摘自:http://www.eygle.com/archives/2005/01/eoeaaeaeioa.html

目前,数据仓库一词尚没有一个统一的定义,著名的数据仓库专家W.H.Inmon在其著作《Building the Data Warehouse》一书中给予如下描述:数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策。

对于数据仓库的概念我们可以从两个层次予以理解:

首先,数据仓库用于支持决策,面向分析型数据处理,它不同于企业现有的操作型数据库;

其次,数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。

根据数据仓库概念的含义,数据仓库拥有以下四个特点:
1、面向主题
操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。 (more…)

[转载]商业智能的概念

摘自:http://www.eygle.com/archives/2005/01/eiooecaeueaeaei.html

商业业智能是什么?简而言之,它是能够帮助用户对自身业务经营做出正确明智决定的工具。一般现代化的业务操作,通常都会产生大量的数据,如订单、库存、交易帐目、通话记录、及客户资料等。如何利用这些数据增进 对业务情况的了解,帮助我们在业务管理及发展上作出及时、正确的判断,也就是说,怎样从业务数据中提取有用的信息,然后根据这些信息来采用明智的行动–这就是商业智能的课题。

目前,商业智能产品及解决方案大致可分为数据仓库产品、数据抽取产品、OLAP产品、展示产品、和集成以上几种产品的针对某个应用的整体解决方案等。

商业智能领域的技术应用:
商业智能的技术体系主要有数据仓库(DW)、在线分析处理(OLAP)以及数据挖掘(DM)三部分组成。

数据仓库是商业智能的基础,许多基本报表可以由此生成,但它更大的用处是作为进一步分析的数据源。所谓数据仓库(DW)就是面向主题的、集成的、稳定的、不同时间的数据集合,用以支持经营管理中的决策制定过程。多维分析和数据挖掘是最常听到的例子,数据仓库能供给它们所需要的、整齐一致的数据。

在线分析处理(OLAP)技术则帮助分析人员、管理人员从多种角度把从原始数据中转化出来、能够真正为用户所理解的、并真实反映数据维特性的信息,进行快速、一致、交互地访问,从而获得对数据的更深入了解的一类软件技术。

数据挖掘(DM)是一种决策支持过程,它主要基于AI、机器学习、统计学等技术,高度自动化地分析企业原有的数据,做出归纳性的推理,从中挖掘出潜在的模式,预测客户的行为,帮助企业的决策者调整市场策略,减少风险,做出正确的决策。

如何将EXP出来的数据IMP到不同表空间

前几天部门经理在IMP数据时想将数据导入到不同于原系统的表空间去,却发现怎么也不成功,数据还是导入到原来的表空间。

我看了一下,他在新系统上创建的这个用户授予了CONNECT,RESOURCE,DBA等角色,而且这个用户有UNLIMITED TABLESPACE这个系统权限。

总的来说, oracle 并没有提供什么参数让你将数据导入到指定的表空间中,数据默认还是导入到它原来所在的表空间。你可以用IMP 的SHOW参数可以看到其创建脚本中会指定TABLESPACE参数,而这个值是原系统该对象所在的表空间,跟你用户默认的表空间是没有关系的,如下:

“CREATE TABLE “EMPLOYEES” (”EMPLOYEE_ID” NUMBER(6, 0), “FIRST_NAME” VARCHAR2″
“(20), “LAST_NAME” VARCHAR2(25) NOT NULL ENABLE, “EMAIL” VARCHAR2(25) NOT NU”
“LL ENABLE, “PHONE_NUMBER” VARCHAR2(20), “HIRE_DATE” DATE NOT NULL ENABLE, “”
“JOB_ID” VARCHAR2(10) NOT NULL ENABLE, “SALARY” NUMBER(8, 2), “COMMISSION_PC”
“T” NUMBER(2, 2), “MANAGER_ID” NUMBER(6, 0), “DEPARTMENT_ID” NUMBER(4, 0)) ”
“PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELIS”
“TS 1 FREELIST GROUPS 1) TABLESPACE “EXAMPLE” LOGGING NOCOMPRESS”
. . 正在跳过表 “EMPLOYEES” (more…)

IMP-00010: 不是有效的导出文件,标题验证失败

今天美国那边发了个dmp文件过来,要求将数据恢复到苏州这边的server,但执行imp时发生如下错误:

IMP-00010: 不是有效的导出文件,标题验证失败
IMP-00000: 未成功终止导入

我的imp版本是9205,目标数据库也是9205,而美国那边的dmp文件未告诉我版本

在google上查找了一下,大概有两种情况:

1.imp/exp的版本不对,也就是说低版本的导出,可以用高版本的导入,但高版本导出不能用低版本的导入,这个版本不只是指imp/exp的版本,也是指数据库的版本

2.可能你在用ftp download时未设置binary的传输方式,导致文件损坏

用UltraEdit-32打开dmp文件可看到版本信息,美国传过来的dmp文件的信息如下:

XPORT:V10.02.01

从中可以看出其版本是10.02.01

所以我执行imp时报错是因为版本问题,后来用10g的imp导入到10g的数据库就成功了

  Recent Comments:

    搜索本站

    站点日历

    9月 2010
    « 4    
     12345
    6789101112
    13141516171819
    20212223242526
    27282930  

    订阅本站

    文章分类

    最新日志

    热点文章

    日志存档

    常用标签