最近在使用java验证excel表单元的信息,数据量非常大,而且验证的规则比较复杂,如果单纯使用程序的验证的话,效率将非常低,考虑到oracle存储过程是可编译的,每次编译之后都会将数据放入高速缓存当中,下次再取,速度将非常的快。之前并没有接触到oracle的
最近在使用java验证excel表单元格的信息,数据量非常大,而且验证的规则比较复杂,如果单纯使用程序的验证的话,效率将非常低,考虑到oracle存储过程是可编译的,每次编译之后都会将数据放入高速缓存当中,下次再取,速度将非常的快。之前并没有接触到oracle的存储过程,所以也花了几天的时间去研究了一番,由于时间紧迫,没有怎么很好的整理。现在先将比较基本的一些实现方法给大家分享一下
下面是使用java调用存储过程来返回out的值,因为存储过程有三种参数,in表输入,out表输出,in out即可输入又可输出,什么意思呢?刚接触的人可能就不大明白了,其实in就像java方法中的参数一样,可将参数传到存储过程(其实就将存储过程看成方法就行了,只是比较特殊,他是可编译的),而out相当于java方法的返回参数,只是存储过程可以定义多个out,相当于可以return多个参数一样,do you understand?
需要注意的是,out可以返回单条记录或者多条记录,他们的实现方法是不一样的,返回单条记录直接将他作为某个变量赋值就行,下面随便写了一个例子说明一下:
存储过程代码:
<p>CREATE OR REPLACE PROCEDURE pro_return_result ( a in varchar2,b out varchar2 ) AS BEGIN if a is not null then b := '不好说'; end if; END pro_return_result;</p>
java调用代码:(只贴出核心部分,其他的数据库连接自己搞定)

<p>CallableStatement cs = null; cs = con.prepareCall("{call pro_return_result(?,?)}"); cs.setString(1, "1"); cs.registerOutParameter(2, Types.VARCHAR); cs.execute(); String result = cs.getString(2); System.out.println(result);</p>
cs.registerOutParameter(2, Types.VARCHAR); 输出结果:不好说 如果要输出多个记录,则在存储过程写多几个out,然后写多几个cs.registerOutParameter(参数位置, Types.VARCHAR);OK搞定返回单条记录 如果存储过程要为默写变量赋值,返回单条记录时,可使用这样的一种方式:select 某表的字段1,字段2…… into 变量1,变量2 from 表 where 表字段=某个值 如例子:<p></p><p><span><img src="/static/imghwm/default1.png" data-src="/inc/test.jsp?url=http%3A%2F%2Fcommon.cnblogs.com%2Fimages%2Fcopycode.gif&refer=http%3A%2F%2Fblog.csdn.net%2Fzajin%2Farticle%2Fdetails%2F9335997" class="lazy" alt="oracle存储过程一(返回单条记录的值)" ></span></p><img src="/static/imghwm/default1.png" data-src="/inc/test.jsp?url=http%3A%2F%2Fimages.cnblogs.com%2FOutliningIndicators%2FExpandedBlockStart.gif&refer=http%3A%2F%2Fblog.csdn.net%2Fzajin%2Farticle%2Fdetails%2F9335997" class="lazy" alt="oracle存储过程一(返回单条记录的值)" ><span>代码</span><p></p><pre class="brush:php;toolbar:false"><p>CREATE OR REPLACE PROCEDURE validate_module_name ( a in varchar2,b out varchar2 ) AS c varchar2(255); BEGIN select module_one into c from temp_test_case where num= a; if c is not null then b := '1'; end if; END validate_module_name;</p>
调用的方式和上面说的一样,as下是放自定义的变量,begin到End是PL/SQL语句,PL/SQL中的空值使用is null来表示,非空为:is not null,这和java程序有所区别,PL/SQL有时间再详解
注:存储过程还有一种返回情况,返回的是多条记录,既结果集,而不是单条记录,则不能使用上面的那种方法,得使用游标输出结果集,同时select 某表的字段1,字段2……
into 变量1,变量2 from 表 where 表字段=某个值这种方式也不能使用,因为select into语句只使用返回单条记录的情况。在java调用存储过程也不能使用
cs.registerOutParameter(参数位置, Types.VARCHAR)了,存储过程返回结果集的java调用下回详解……

方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

在oracle中,可以利用“TO_SINGLE_BYTE(String)”将全角转换为半角;“TO_SINGLE_BYTE”函数可以将参数中所有多字节字符都替换为等价的单字节字符,只有当数据库字符集同时包含多字节和单字节字符的时候有效。

在Oracle中,可利用lsnrctl命令查询端口号,该命令是Oracle的监听命令;在启动、关闭或重启oracle监听器之前可使用该命令检查oracle监听器的状态,语法为“lsnrctl status”,结果PORT后的内容就是端口号。

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

在oracle中,可以利用“select ... From all_tab_columns where table_name=upper('表名') AND owner=upper('数据库登录用户名');”语句查询数据库表的数据类型。

在oracle中,可以利用“drop sequence sequence名”来删除sequence;sequence是自动增加数字序列的意思,也就是序列号,序列号自动增加不能重置,因此需要利用drop sequence语句来删除序列。

方法:1、利用“alter system set sessions=修改后的数值 scope=spfile”语句修改session参数;2、修改参数之后利用“shutdown immediate – startup”语句重启服务器即可生效。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

WebStorm Mac版
好用的JavaScript开发工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Atom编辑器mac版下载
最流行的的开源编辑器