`
xinyoulinglei
  • 浏览: 125960 次
社区版块
存档分类
最新评论

oracle 创建简单的函数

阅读更多
CREATE OR REPLACE FUNCTION hello
/**********************************************************
  Author        : fuqiang WX155924
  Version       : v1.00
  Date          : 2013-01-06
  Description   : 目录上下移动
  ******************************************************/
(i_source_objid IN VARCHAR2, -- 原目录objectid
i_tag_objid    IN VARCHAR2 -- 要移动到得目标objectid
-- o_resulet      out number
) RETURN INT AS  -- 迁移是否成功 1:失败 0:成功

  v_sourcePid VARCHAR2(30); -- 源目录的Pid
  v_tagpid    VARCHAR2(30); --目标目录的Pid
BEGIN
  -- 入口参数判断
  IF i_source_objid IS NULL OR i_tag_objid IS NULL THEN
    RETURN 1;
  END IF;
  -- 存储他们各自的pid
        
  select category.parentid
    into v_sourcePid
    from T_CMP_TYPE_CATEGORY category
   where category.objectid = i_source_objid;
 
  select category.parentid
    into v_tagpid
    from T_CMP_TYPE_CATEGORY category
   where category.objectid = i_tag_objid;

  if v_sourcePid = v_tagpid then
    RETURN (1);
  end if;
 
  --上移的时候  i_source_objid > i_tag_objid

  if i_source_objid > i_tag_objid then
  ------------------------ 更新 T_CMP_TYPE_CATEGORY ----------------------
    --(源目录)
    update T_CMP_TYPE_CATEGORY t
       set t.objectid = i_tag_objid
     where t.parentid = v_sourcePid
       and t.objectid = i_source_objid;
    --(目标目录)
    update T_CMP_TYPE_CATEGORY t
       set t.objectid = i_source_objid
     where t.parentid = v_sourcePid
       and t.objectid = i_tag_objid;
 
    ------------------------ 更新 T_CMP_EXT_MEDIACATEGORY ----------------------  
    --(源目录)
    update T_CMP_EXT_MEDIACATEGORY t
       set t.objectid = i_tag_objid
     where t.objectid = i_source_objid;
    --更新(目标目录)
    update T_CMP_EXT_MEDIACATEGORY t
       set t.objectid = i_source_objid
     where t.objectid = i_tag_objid;
 
    ------------------------ 更新 T_CMP_TYPE_MEDIACATEGORY ----------------------
    -- (源目录)
    update T_CMP_TYPE_MEDIACATEGORY t
       set t.objectid = i_tag_objid
     where t.objectid = i_source_objid;
    --(目标目录)
    update T_CMP_TYPE_MEDIACATEGORY t
       set t.objectid = i_source_objid
     where t.objectid = i_tag_objid;
 
    ------------------------ 更新 mdsp_t_categoryinfo ------------------------
    -- (源目录)
    update mdsp_t_categoryinfo t
       set t.objectid = i_tag_objid
     where t.objectid = i_source_objid;
    --(目标目录)
    update mdsp_t_categoryinfo t
       set t.objectid = i_source_objid
     where t.objectid = i_tag_objid;
 
    RETURN 0;
 
  end if;

EXCEPTION
  WHEN OTHERS THEN
    RETURN 2;


END hello;
分享到:
评论

相关推荐

    oracle自定义日期函数

    因此,我们可以使用 Oracle 提供的方法来创建一个同名的函数 DATEADD,以便于移植使用。 DATEADD 函数的实现 ------------------ DATEADD 函数的实现主要是通过使用 PL/SQL 语言来编写一个存储过程。函数的输入...

    ORACLE CRC32函数

    ### ORACLE CRC32函数详解 #### 一、概述 在Oracle数据库中,`CRC32`函数是一种非常实用的功能,主要用于将字符类型的数据转换为一个唯一的数字类型,这一过程通常被称为散列(Hash)。通过该函数,可以方便地生成...

    Oracle字符相似度函数

    Oracle字符相似度函数是Oracle数据库系统提供的一种功能,用于评估两个字符串之间的相似性。这个功能在数据清洗、信息检索、文本分析等领域具有广泛的应用。在SQL查询中,我们可以直接使用这些函数来比较不同字符串...

    Oracle自定义聚合函数-分析函数

    Oracle 自定义聚合函数是一种强大且灵活的功能,允许用户根据自己的需求创建自定义的聚合函数。聚合函数是一种特殊的函数,它可以对一组数据进行处理和计算,并返回一个结果。 Oracle 提供了一个名为 ODCIAggregate ...

    Oracle中实现Split函数功能

    Oracle 中实现 Split 函数功能 Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,...

    postgresql 兼容 oracle 函数

    5. **序列对象**:Oracle中的序列在PostgreSQL中可以通过创建序列类型来模拟,orafce提供了类似于Oracle的序列操作函数。 6. **其他兼容性特性**:还包括异常处理、游标处理、包的创建等,以尽可能地模拟Oracle的...

    oracle权限函数

    ### Oracle权限函数详解 在Oracle数据库管理中,权限管理是一项重要的任务,它涉及到对用户、角色及对象等数据库实体的访问控制。通过合理地分配权限,可以有效地保护数据的安全性和完整性,同时确保业务流程的正常...

    oracle创建函数生成拼音码(汉字首字母)

    oracle创建函数生成拼音码(汉字首字母)

    oracle 创建wm_concat函数

    ### Oracle 创建wm_concat函数 #### 知识点一:Oracle 10G及以下版本的wm_concat函数自定义实现 在Oracle 10G及更早版本中,并没有内置的`wm_concat`函数,该函数主要用于对一组字符串进行连接操作。为了在这些...

    oracle sql内置函数大全

    Oracle SQL还支持自定义函数,使得开发人员能够创建特定业务逻辑的函数。 了解并熟练掌握这些内置函数对于优化查询性能、简化代码和提高工作效率至关重要。通过深入学习和实践,你可以更好地利用Oracle SQL解决各种...

    ORACLE常用分析函数说明

    ORACLE 常用分析函数说明 Oracle 分析函数从 8.1.6 版本开始提供,是一种计算基于组的聚合值的函数。它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 开窗函数是分析函数工作的...

    Oracle10G函数大全(chm格式的,比较全面)

    Oracle 10G是Oracle数据库的一个重要版本,它包含了丰富的函数和特性,为数据库管理和开发提供了强大的支持。本文将深入探讨Oracle 10G中的一些关键函数,旨在帮助你更好地理解和利用这些工具。 1. **数学函数**: ...

    Oracle 递归函数介绍

    Oracle 递归函数介绍 Oracle 递归函数是一种特殊的PL/SQL函数,可以用于解决复杂的树形结构查询问题。递归函数可以自我调用,以便遍历树形结构的每个节点,直到达到停止条件。 在 Oracle 中,递归函数的定义语法...

    oracle split函数

    本文将详细介绍两种在Oracle中实现字符串分割的方法:第一种是通过创建类型和管道函数的方式;第二种则是通过循环和子字符串处理实现的。 #### 二、第一种实现方式:创建类型和管道函数 ##### 1. 创建类型 `TY_STR...

    oracle 数据库的 函数 和包

    下面通过几个例子来详细了解Oracle函数的创建与使用: #### 1. 创建不带参数的简单函数 ```sql CREATE OR REPLACE FUNCTION fun_test RETURN INTEGER IS BEGIN RETURN 1000; END; ``` 此函数名为`fun_test`,...

    hibernate 调用oracle函数

    1. **创建Oracle函数**:在Oracle数据库中,我们首先需要创建一个自定义函数。例如,我们可以创建一个计算两个数字之和的函数`ADD_NUMBERS`: ```sql CREATE OR REPLACE FUNCTION ADD_NUMBERS(p_num1 NUMBER, p_...

    java调用oracle存储过程或者函数

    1. Oracle数据库:确保已安装并配置了Oracle数据库,存储过程或函数已经在数据库中创建并可用。 2. JDBC驱动:安装Oracle的JDBC驱动,如ojdbc.jar,将其添加到项目的类路径中。 二、调用存储过程 1. 获取数据库连接...

    Oracle数据库sql函数及语法

    Oracle数据库的SQL函数是数据库查询和管理中不可或缺的一部分,它们极大地丰富了SQL语言的功能,使得数据处理更加灵活和高效。以下是一些常见的Oracle SQL函数及其详细说明: 1. ASCII函数:ASCII函数返回一个字符...

    ORACLE_分析函数大全

    Oracle分析函数是数据库管理系统Oracle中的一种高级SQL特性,它们在数据处理和分析中扮演着重要角色。分析函数允许用户在结果集的每一行上执行计算,不仅考虑当前行,还考虑了同一组内的其他行。这与传统的聚合函数...

    Oracle创建函数及其调用

    ### Oracle 创建函数及其调用 在Oracle数据库中,创建用户定义的函数是一种强大的工具,它允许开发者编写可重用的代码块,这些代码块可以执行复杂的业务逻辑,并返回计算结果。这种能力对于优化查询性能、简化应用...

Global site tag (gtag.js) - Google Analytics