oracle调用自定义函数6,Oracle 存储过程中调用自定义的函数问题?

博主在Oracle中遇到一个存储过程调用自定义数字校验函数的问题。首次导入数据时函数校验正常,但二次导入时需重新编译函数才能正确校验。函数IS_POSITIVE_NUMERIC用于检查字符串是否为正整数,可能存在导致此问题的原因。解决方案可能涉及存储过程的调用机制或函数本身的优化。
摘要由CSDN通过智能技术生成

Oracle 存储过程中调用自定义的函数问题?

我现在在做一个Oracle数据导入,要将EXCEL数据导入到Oracle数据库中,先读取数据,将数据保存在一张临时表中,然后导入之前对临时表中数据的每个字段做校验,比如数据是否为整数,整数的最大位数,及导入的数据在原数据库中是否已经存在等,我写了一个存储过程,对异常的数据,将字段“is_checked”设为异常信息。

在对数字型数据做校验时,为了验证该字段是否为数字,或者为整数,我在Oracle中写了一个自定义的数字校验函数,并在存储过程中调用该函数,但是我发现第一次导入时,所有数据校验正常,但是当第二次点击导入的时候,存储过程就不能重新调用该函数,理所当然校验的数据也都是错误的,与第一次校验的结果大为不同,调试修改之后,发现必须重新编译这个校验函数才能正常的校验。这个问题就连现在的项目经理也解决不了了:)

在这里想问大家,有什么办法可以在存储过程中调用该函数时只需编译一次?或者调用之前对该函数重新编译的方法,有做过类似项目的同仁帮忙解决一下啊:)

呵呵 比较头疼的问题,也可能是我的校验函数出了问题,以下是我自己写的的Oracle数字校验函数,不知对否,望多多指教~~

CREATE OR REPLACE FUNCTION IS_POSITIVE_NUMERIC(MyStr VARCHAR2,intMax integer,decimalMax integer) RETURN NUMBER

IS

/******************************************************************************

PURPOSE:   判断输入的字符串是否为合法的正数

REVISIONS:

Ver        Date        Author           Description

---------  ----------  ---------------  ------------------------------------

1.0        2008-11-17   lei.zhao     1. Created this procedure.

输入参数:

MyStr :要检验的字符串

intMax:整数部分最大位数

&

相关文档:

方法一,使用SQL*Loader

这个是用的较多的方法,前提必须oracle数据中目的表已经存在。

大体步骤如下:

1   将excle文件另存为一个新文件比如文件名为text.txt,文件类型选文本文件(制表符分隔),这里选择类型为csv(逗号分隔)也行,但是在写后面的control. ......

1.

错误提示:ORA-12545:因目标主机或对象不存在,连接失败.

错误症状:新建的数据库在OEM控制台无法显示(sysman用户登陆),独立启动模式可以找到,但无法登陆,出现如上错误。

解决办法:修改oracle安装目录下(oracle\ora90\network\ADMIN)的tnsnames.ora文件,将当前数据库添加到监听对象中。修改之后,可以在独立� ......

一、在PLSQL中创建表:

create table HWQY.TEST

(

CARNO VARCHAR2(30),

CARINFOID NUMBER

)

二、在PLSQL中创建存储过程:

create or replace procedure pro_test

AS

carinfo_id number;

BEGIN

select s_CarInfoID.nextval into carinfo_id

from dual;

insert into test(test ......

1.1.1             Oracle物化视图简介

1.     物化视图说明

物化视图 (Materialized View),在以前的Oracle版本中称为快照(Snapshot)。Oracle 的物化视图提供了强大的功能,可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果 ......

oracle中connect by prior实现递归查询

收集的几条在oracle中通过connect by prior来实现递归查询

Start with...Connect By子句递归查询一般用于一个表维护树形结构的应用。

创建示例表:

CREATE TABLE TBL_TEST

(

ID    NUMBER,

NAME VARCHAR2(100 BYTE),

PID   NUMBER &nbs ......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值