今天写了个function,学习了一些orcale的语法,下面是修改后的简洁代码,以便以后查看。
CREATE OR REPLACE TYPE typetmp AS TABLE OF VARCHAR2(4000); CREATE OR REPLACE FUNCTION functiontmp(l_orders IN VARCHAR2) RETURN typetmp IS l_typetmp typetmp:= typetmp(); --初始化typetmp,后面通过数组的方式使用 noLen INTEGER := 8; l_order VARCHAR2(3000); l_orderIds VARCHAR2(3000); --input data l_strs VARCHAR2(3000); --DNCContactNo Strings l_str VARCHAR2(3000); --each DNCContactNo String l_orderId VARCHAR2(3000); --each order ---------------------------declare cursor start------------------------------- CURSOR t_cursor IS SELECT coltmp FROM tabletmp WHERE datetmp >= trunc(sysdate-1) and datetmp < trunc(sysdate); ---------------------------declare cursor end--------------------------------- BEGIN ---------------------------get orderIDs start--------------------------------- 使用cusor将查询结果集放入字符串l_orderIds中,两次使用fetch into ------------------------------------------------------------------------------ IF l_orders IS NULL THEN BEGIN OPEN t_cursor; FETCH t_cursor INTO l_order; WHILE t_cursor%FOUND LOOP--judge whether get last record IF l_orderIds IS NULL THEN l_orderIds := l_order||','; ELSE l_orderIds := l_order||','||l_orderIds||','; END IF; FETCH t_cursor INTO l_order;--loop cursor for get each record END LOOP; EXCEPTION WHEN OTHERS THEN CLOSE t_cursor; IF t_cursor%isopen THEN CLOSE t_cursor; END IF; END; END IF; --------------------------get orderIDs end------------------------------------ IF l_orders<>'' OR l_orders IS NOT NULL THEN l_orderIds := l_orders||','; END IF; WHILE l_orderIds IS NOT NULL LOOP l_orderId := SUBSTR(l_orderIds, 1, INSTR(l_orderIds, ',')-1); --instr()函数获取字符','在l_orderIds中的位置,返回位置号 ------------------------get orderid value start------------------------------ 采用"select into from"为指定字符插入值,只能接受一个结果,不能接受结果集 查询table判断是否有记录插入l_strs,如果没有结果,则赋值为null ------------------------------------------------------------------------ IF l_orderId IS NOT NULL THEN BEGIN SELECT b.coltmp1 INTO l_strs FROM tabletmp b where col=l_orderId; EXCEPTION WHEN no_data_found THEN l_strs := NULL; END; END IF; ------------------------get orderid value end------------------------------ WHILE l_strs IS NOT NULL LOOP l_str := substr(l_strs, 1, noLen); l_typetmp.EXTEND(1); l_typetmp(l_typetmp.COUNT) := l_str;--往新类型创建的便利l_typetmp里放入值 l_strs := SUBSTR(l_strs, noLen+2); l_str := NULL; END LOOP; l_strs := NULL; l_orderIds := SUBSTR(l_orderIds, length(l_orderId)+2); END LOOP; RETURN l_typetmp; END;
相关推荐
Oracle function 例子 in out 例子
使用hibernate的query调用oracle的存储过程/function,包含例子,源码以及数据库文件
3 管理 Oracle 实例 目标 3-2 初始化参数文件 3-3 PFILE initSID.ora 3-5 PFILE 例子 3-6 SPFILE spfileSID.ora 3-7 创建一个 SPFILE 3-8 SPFILE 例子 3-9 Oracle 管理文件 3-10 Oracle 管理文件例子 3-11 打开一个...
SQL>select object_name,status from user_objects where object_type='FUNCTION'; SQL>select object_name,status from user_objects where object_type='PROCEDURE'; 查看函数和过程的源代码 SQL>select text...
Mysql 甲骨文 是个开源的数据库server,可运行在多种平台, 特点是响应速度特别快,主要面向中小企业 中小型企业 PostgreSQL 号称“世界上最先进的开源数据库“,可以运行在多种平台下,是tb级数据库,而且性能也很...
第一部分 Oracle SQL*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24...
2. 完整的简单例子(资料库、体系结构、项目、模型、接口、包、方案) 11 2.1. ODI理解之2 11 2.2. 环境准备 12 2.3. 创建资料库 13 2.4. 创建物理体系结构 17 2.5. 创建逻辑体系结构 20 2.6. 创建项目 20 2.7. 创建...
业务模型是用“职能范围(Function Area)—业务过程(Process)—业务活动(Activity)”这样的层次结构描述的。 2.1.1 职能范围 职能范围指的是一个企业中的主要业务领域,比如工程、市场、生产、科研、销售等。下面举出...
<1>.creating function-based indexes sql> create index summit.item_quantity on summit.item(quantity-quantity_shipped); <2>.create a B-tree index sql> create [unique] index index_name on table_...
SQL>select object_name,status from user_objects where object_type='FUNCTION'; SQL>select object_name,status from user_objects where object_type='PROCEDURE'; 查看函数和过程的源代码 SQL>select text...
主要功能就是把数据存储隐藏起来,调用SQL, ORACLE,之类。我主要是用它调用数据库工厂创建。 大致看一下代码吧。 //----------//1.工厂基类(SQLServer工厂类)//----------unit ConnDBFactory_SQLServer;...
如果学习过高级语言比如java和c语言等,此时你要是获取一个函数的返回值,直接在函数里面写上return即可,然后在函数执行时将...比如下面这个例子: #!/bin/bash function in_path(){ cmd=$1 path=$2 oldIFS=$IFS
你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP安装版本需要哪些功能。引用...
Oracle WebSQL MongoDB的 您可以在TypeORM网站或其他地方找到其他第三方支持的数据库。 安装 npm install typeorm-adapter 简单的例子 import { newEnforcer } from 'casbin' ; import TypeORMAdapter from '...
1 安装oracle,这个例子只做了oracle版本,如果需要,后期可以加上mysql版本,呵呵。 2 运行建用户及表空间的脚本。db_desc_ddl.sql. 3 执行初始化数据脚本。db_desc_dml.sql 4 导入工程,部署,打开浏览器输入 ...
《PHP开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以开发...
《PHP开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以开发...
11.4.5. SqlFunction类 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring的application context中创建 SessionFactory 12.2.3. HibernateTemplate 12.2.4. 不使用...
11.4.5. SqlFunction类 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring的application context中创建 SessionFactory 12.2.3. HibernateTemplate 12.2.4. 不使用回调...
11.4.5. SqlFunction类 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring的application context中创建 SessionFactory 12.2.3. HibernateTemplate 12.2.4. 不使用...