页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

1 概述

【存储过程】就是存储在数据库中的一组 SQL 语句集。Smartbi 的数据模型支持调用数据库中的存储过程,从而获得执行了存储过程 SQL 语句集后的数据结构、数据集。存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升。

使用存储过程的前提要求:

数据库类型

数据库权限要求

Teradata

要求连接用户必须具有访问DBC.TABLES、DBC.COLUMNS的权限,及调用Exec方法的权限。

大部分数据库比如:mySQL、SQL Server、

Oracel、DB2等其他数据库

要求连接用户必须具有调用getProcedureColumns和Call方法的权限。

2 示例

比如用户想创建一个名为“FindCustomer”存储过程,可以用它来找出数据库Customer表中的ContactName;

...

以产品自带northwind数据库创建存储过程FindCustomer

具体操作如下:

1)先在数据库中创建存储过程FindCustomer,如下图:先在数据库中创建好存储过程FindCustomer,如下图:

2)再到Smartbi系统中的数据连接中对所需数据库进行数据库管理,选择所需的存储过程资源:

Image RemovedImage Added

3)对所选存储过程进行管理,“存储过程管理”窗口中通过 自动检测  检测结果集 按钮分别检测出相关的参数和获取存储过程的结果集,详细可参考:存储过程数据集

...

数据库类型

存储过程执行过程

Teradata

调用下面语句执行宏:
connection.prepareStatement("{Exec macroName(?,?)}")

大部分数据库比如:mySQL、SQL Server、

Oracel、DB2等其他数据库

调用JDBC中的标准方法:
connection.prepareCall("{Call procName(?,?)}")

3)数据库权限要求

...

数据库类型

数据库权限要求

...

Teradata

...

要求连接用户必须具有访问DBC.TABLES、DBC.COLUMNS的权限,及调用Exec方法的权限。

...

大部分数据库比如:mySQL、SQL Server、

Oracel、DB2等其他数据库

...