我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ORACLE 12C创建wm_concat函数

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ORACLE 12C创建wm_concat函数

ORACLE 12C创建wm_concat函数

0.首先使用dba用户登录数据库,并解锁wmsys用户

alter user wmsys account unlock;

用WMSYS用户登录,不知道密码可以修改其密码

alter user wmsys identified by 123456;

在wmsys下创建可用的wm_concat函数,直接执行以下语句

--定义类型
CREATE OR REPLACE TYPE WM_CONCAT_IMPL AS OBJECT
(
CURR_STR VARCHAR2(32767),
STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL) RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL,
P1 IN VARCHAR2) RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN WM_CONCAT_IMPL,
RETURNVALUE OUT VARCHAR2,
FLAGS IN NUMBER)
RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT WM_CONCAT_IMPL,
SCTX2 IN WM_CONCAT_IMPL) RETURN NUMBER
);
--定义类型body:
CREATE OR REPLACE TYPE BODY WM_CONCAT_IMPL
IS
STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL)
RETURN NUMBER
IS
BEGIN
SCTX := WM_CONCAT_IMPL(NULL) ;
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL,
P1 IN VARCHAR2)
RETURN NUMBER
IS
BEGIN
IF(CURR_STR IS NOT NULL) THEN
CURR_STR := CURR_STR || "," || P1;
ELSE
CURR_STR := P1;
END IF;
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN WM_CONCAT_IMPL,
RETURNVALUE OUT VARCHAR2,
FLAGS IN NUMBER)
RETURN NUMBER
IS
BEGIN
RETURNVALUE := CURR_STR ;
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT WM_CONCAT_IMPL,
SCTX2 IN WM_CONCAT_IMPL)
RETURN NUMBER
IS
BEGIN
IF(SCTX2.CURR_STR IS NOT NULL) THEN
SELF.CURR_STR := SELF.CURR_STR || "," || SCTX2.CURR_STR ;
END IF;
RETURN ODCICONST.SUCCESS;
END;
END;

--自定义行变列函数
CREATE OR REPLACE FUNCTION wm_concat(P1 VARCHAR2)
RETURN VARCHAR2 AGGREGATE USING WM_CONCAT_IMPL ;

--创建完成,给其创建同义词及授权,以供其他用户能正常使用。
create public synonym WM_CONCAT_IMPL for wmsys.WM_CONCAT_IMPL;
create public synonym wm_concat for wmsys.wm_concat;

--授权
grant execute on WM_CONCAT_IMPL to public;
grant execute on wm_concat to public;

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ORACLE 12C创建wm_concat函数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ORACLE 12C创建wm_concat函数

0.首先使用dba用户登录数据库,并解锁wmsys用户alter user wmsys account unlock;1.用WMSYS用户登录,不知道密码可以修改其密码alter user wmsys identified by 123456;2.在wmsys
ORACLE 12C创建wm_concat函数
2015-03-21

oracle怎么创建函数

在 oracle 中创建函数的步骤为:1. 指定函数名称;2. 定义参数;3. 指定返回值类型;4. 编写函数体;5. 结束函数。例如,计算折扣金额的函数为:create function calculate_discount (sales
oracle怎么创建函数
2024-05-13

Oracle Index函数自动创建条件

Oracle Index函数自动创建条件是指在使用索引函数时,Oracle数据库系统会根据查询条件自动创建相应的索引。这样可以提高查询的效率,减少数据库的访问时间。通过使用索引函数,可以让Oracle数据库系统更加智能地优化查询操作,提高系
Oracle Index函数自动创建条件
2024-08-15

oracle函数索引怎么创建和使用

创建一个Oracle函数索引的语法如下:CREATE INDEX index_nameON table_name (function_name(column_name));其中,index_name 是索引的名称,table_name
oracle函数索引怎么创建和使用
2024-03-13

如何创建 golang 函数?

在 go 中创建函数的步骤:使用 func 关键字声明函数名称,它必须以小写字母开头。在圆括号中指定函数的参数列表,每个参数都有其类型。在大括号中编写函数体,指定函数的行为。使用 return 关键字返回函数的类型,它可以是任何内置类型或自
如何创建 golang 函数?
2024-04-25

编程热搜

目录