oracle创建函数为什么调用显示处于无效状态?

create or replace function myfun(x number)
return varchar as sushu varchar(100);
begin
c number := 0;
i number := 2;
while i < x loop
if mod(x,i) =0 then
c := c+1;
exit;
end if;
i := i + 1;
end loop;
if c = 1 then
sushu := '不是素数';
else
sushu :='是素数';
end if;
return sushu;
end;

0

1个回答

首先,你的变量定义放错位置了,编译都是通不过的,c和i定义应该放在begin前
如下:

 create or replace function myfun(x number)
return varchar as sushu varchar(100);
c number := 0;
i number := 2;
begin
while i < x loop
if mod(x,i) =0 then
c := c+1;
exit;
end if;
i := i + 1;
end loop;
if c = 1 then
sushu := '不是素数';
else
sushu :='是素数';
end if;
return sushu;
end;

调用函数:

 SET SERVEROUTPUT ON;
DECLARE
sushu varchar(100);
BEGIN
sushu := myfun(97);
dbms_output.put_line('sushu='||sushu);
END;
1
ththcc
小影__ 回复qq_15339617: 不客气~
11 个月之前 回复
qq_15339617
qq_15339617 谢谢
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ORA-06575: 程序包或函数 WM_CONCAT 处于无效状态
ORA-06575: 程序包或函数 WM_CONCAT 处于无效状态;执行代码可以解决报错
执行存储过程报错:ORA-06575: 程序包或函数 BB 处于无效状态
1、你的存储过程有错误,编译不通过。处理于无效状态。2、问题   a.存储过程中隐式游标的select 语句必须要有into子句。   如:select col1 into v_col1 from dba_tables where owner = 'ACM'   col1为表中一字段,v_col1为一变量   b.在存储过程中访问视图dba_tables,没有权限,你需要显式授权。   如登录sy...
程序包或函数 WM_CONCAT 处于无效状态
今天运行了很久的项目,点了一下查询突然发现出现了一个 程序包或函数 WM_CONCAT 处于无效状态的问题报错,妈耶,因为啥啊,咋地了,跑了这么就怎么就瘫痪了 废话不多说,找到报错的sql  然后勒,当然是把这个sql扔到PL/SQL 跑一下啊,然后就发现   ” 程序包或函数 WM_CONCAT 处于无效状态” 找到那个函数,完事打一顿,然后再看一下Functions 有没有红色的x...
pl/sql developer中用execute调用存储过程弹出‘无效的sql语句’解决方法
转自:http://www.myexception.cn/oracle-management/267605.html——解决方案——————–1、在sql的执行窗口中只能这样调用”call OUT_TIME(); “,这样执行就是把”call OUT_TIME(); “当成一个sql语句,而exec OUT_TIME();不是一个sql语句,是一个执行体,执行体调用必须在命令窗口,把这句话当成一个整
Oracle12c创建wm_concat函数
11gr2和12C上已经摒弃了wm_concat函数,当时我们很多程序员在程序中使用了该函数,导致程序出现错误,为了减轻程序员修改程序的工作量,只有通过手工创建个wm_concat函数,来临时解决该问题
解决oracle查询数据,一直处于执行状态
问题描述:很奇怪,就是连表查询 有个日期条件 6号之前的数据都可以查出来,7号开始后面的都处于执行状态. 然后大于6号或6号之前的,小于7号或7号以后的都可以查.(可能描述的不是很清楚,能套就套上去吧)       解决方案:oracle对表一般会在一个固定时间进行分析,我这边分析的时间可能就是6号,所以查后面的就查不出来.我们可以手动分析表,执行命令:analyze table cm...
"WM_CONCAT": 标识符无效
导致原因: 11gr2和12C上已经摒弃了wm_concat函数,当时我们很多程序员在程序中确使用了该函数,导致程序出现错误,为了减轻程序员修改程序的工作量,只有通过手工创建个wm_concat函数,来临时解决该问题,但是注意,及时创建了该函数,在使用的过程中,也需要用to_char(wm_concat())方式,才能完全替代之前的应用。 解决办法: sys 登录 1.解锁sys用户 a...
Oracle EBS提交请求遇到“无管理器”错误
Oracle EBS提交请求遇到“无管理器”错误        今天在提交请求时,碰到请求运行错误,状态提示“无管理器”。        解决办法如下:1. 切换至系统管理员职责。找到标准管理器,点击“Restart”。稍后可能需要“Activate”。2. 重新提交请求即可。
存储过程中调用自定义函数(不在同一用户下)提示无权限或标识符无效
问题描述:           在A用户下自定了一个函数 : getName(); 然后在B用户下创建存储过程,调用了A用户下的自定义函数getName;在编译存储过程时提示函数 getName无效。 解决方法:           将A用户下自定义函数getName,授权给B用户 :               grant execute on  A.getName  to  B ;
数据文件状态处于recover,恢复正常
查询数据文件的状态:    select T.FILE#,T.STATUS,T.NAME from v$datafile t; 此时发现部分文件状态处于recover状态,导致数据库不可用 原因:意外断电,或者使用了删除命令导致数据文件处于不可用异常 解决方法: 使用oracle登陆数据库所在的机器,用sysdba连接数据库      sqlplus 用户名/密码@数据库 as sys
Oracle SQL报错:违反协议,OALL8 处于不一致状态!
今天做项目遇到个问题,在Oracle数据库添加了个字段 “STARTTIME” varchar2() 类型,结果查询的时候报错java.sql.SQLException, 从网上看有说的是jar包驱动的问题。 我的实际解决方案为更换字段名称 “STARTTIME” 为 “BEGINTIME” 结果就不报错了。 ...
解决Oracle的admin账户创建函数却无法调用的问题备忘录
Oracle用admin账户(DBA)创建一个密码验证函数后,在调用它的时候出现如下问题: 具体原因不明觉厉!!!  解决方案如下:     第一种:利用sys系统管理员账户创建全局函数。 (1)先以系统管理员账户登录 (2)执行如下sql语句:  @C:\Users\Dragon\Desktop\My_verify_function.sql;执行结果如下: (3)
建立存储过程时,提示存储过程名无效
建立存储过程时,提示存储过程名无效,如图: 你有没有发现你新建的存储过程这开头是“CREATE” 而不是“ALTER”  所以,,,改一下就好了。。。
Oracle导入错误解决 OALL8 处于不一致状态
因为你运行的是oracle 10g,就可能面临这个问题,因为10g存在一个已知的bug,bug在oracle的编号为:Bug:5851267 oracle已经推出补丁,解决这个问题。 或者不应用补丁,以下面这种方式解决
linux中进程僵死状态以及exit,wait系统调用
僵死状态就是子进程在调用exit后的一段时间里出现的状态,几乎不再内存,也不运行代码,只是在进程列表中存在,这样的状态的弊端就是由于进程列表是有上限的这种僵死状态的进程存在太多就会导致列表不够用从而引发问题 父进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返...
Oracle创建函数及其调用
Oracle创建函数及其调用.txt Oracle创建函数及其调用.txt
云服务器上创建的网站通过ip无法访问以及访问时显示网站连接错误
经过检查提示网站处于联机状态 但未对连接尝试做出响应。 经过筛查,好像是与ip和dns有关系。 于是到阿里云的云服务器控制室把安全组加了个全部+0.0.0.0/0,这样全部开放之后,即可正常访问。 说起来阿里云的配置真是有问题就要考虑安全组呀,之前因为用ip地址访问不了网站就调整过一次安全组。下次再用还是直接全部+0.0.0.0/0,简单粗暴。
Oracle数据库状态(待续更新)
数据库当前状态--数据库当前状态 select status from v$instance;查看当前oracle中正在执行的sql语句--查看当前oracle中正在执行的sql语句 select a.program, b.spid, c.sql_text,c.SQL_ID from v$session a, v$process b, v$sqlarea c where a.paddr = b
Oracle处于recover状态的数据文件是无法使用exp导出数据的
1、启动数据库,检查数据库现有数据文件 SQL> startup ORACLE instance started. Total System Global Area  413372416 bytes Fixed Size                  2253784 bytes Variable Size             314575912 bytes Databa
wampserver一直离线状态,localhost没用
昨天明明还可以正常使用,今天就打开不了localhost。 在网上找了半天,首先我的端口又可能冲突了,解决方案: wampserver离线一招解决_百度经验  http://jingyan.baidu.com/article/6d704a13288e6928da51ca5b.html 在重新启动试了试,发现依然不可以!!!! 那就有可能是浏览
Oracle创建自定义函数时出现错误:PLS-00103及PLS-00382
(作者:陈玓玏) 一、PLS-00103 一般出现这个错误,基本上可以确定是你的语法错误,或者是有中文的输入。 比如说: 1、Oracle用elsif而你用的是else if; 2、直接从网页中把代码粘贴过来结果代码中有中文空格。 这种情况下,解决问题的方法很简单:先在提示的错误上点击右键,转到源。查看问题在什么位置,然后检查是否关键字用错了,把所有空格或符号删掉重新用英文格式输一遍。 二、PLS...
oracle Oracle索引或这类索引的分区处于不可用状态
索引失效 重建索引 alterindexpk_kc03rebuild 查询oracle索引 alterindexpk_kc03rebuild
oracle触发器创建完无效问题解决
最近因统计对表增删改操作统计要使用oracle的触发器,但是触发器创建完使用时报错 在网上找了好久终于找到了解决的方法。 1.找到触发器 可以看到触发器上面有个小红叉号,说明这个触发器是有问题的。 2.右键编辑(edit)  点击下面的报错日志,会自动定位到有错误的行上,我的是因为updating写成了updateing 3.改正 修改创建触发器的语句,重新创建一次触发器,...
Ubuntu一直提示处于离线状态的解决方法
在自己的系统下安装了虚拟机,在虚拟机中安装了12.04版本的ubuntu,插上校园网的网线是显示可以上网,无论是桥接模式和NAT模式UBUNTU都显示联网状态。但是把网线拔掉之后插上连接着开发板(我用的是ARM9的开发板,Linux系统)的网线,就会显示处于离线状态,使Ubuntu的终端查询不到IP地址,导致我不能通过串口助手对开放板进行IP配置,导致我不能让开发板和Ubuntu进行ping通信。...
Kubernetes创建pod一直处于ContainerCreating排查和解决
用k8s创建完pod后,发现无法访问demo应用,查了一下pods状态,发现都在containercreationg状态中。百度了一下,根据网上的方法,查了一下mysql-jn6f2这个pods的详情其中最主要的问题是:details: (open/etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file o...
oracle 内部函数 wmsys.wm_concat 使用报错
ORA-00932: inconsistent datatypes: expected - got CLOB如果你在sql语句中使用了wm_concat,那么你需要注意了,这个函数是oracle的内部函数,其中有的版本安装了 ,有的版本没有安装,所以尽量少使用这个函数,当然,在使用了这个函数的时候报错了,我们需要对其进行转换,因为类型问题导致了上面的报错。所以可以在wm_concat外围加一个to...
Oracle dblink调用函数报ORA-00904 标识符无效
select STRSPLIT@gg_DBLINK('a,b,c') from dual; ORA-00904: "STRSPLIT" 标识符无效 但是有时候是可以的,查看dblink定义,如下: create database link gg_DBLINK   connect to username identified by password   using '(DESCRIPTIO
windows批处理脚本bat命令解析【12】ECHO处于关闭状态
对于bat批处理脚本来说,在set语句中,&quot;=&quot;符号两边不能有空格,有空格的话,会把空格也算在变量名中。
oracle创建表时提示表名无效
oracle创建表create table User (ID varchar2(255 char) not null, NAME varchar2(255 char));提示表名无效。 在oracle中User是关键字,不能作为表名。如果需要使用需要加上双引号。 create table &quot;User&quot; (ID varchar2(255 char) not null, NAME varchar2...
java.sql.SQLException: 违反协议,OALL8 处于不一致状态
今天OMS后代报出了一些异常,java.sql.SQLException: 违反协议,OALL8 处于不一致状态。整个应用都不能用,重启一下就好了。第一次出异常的地方为 [code=&quot;java&quot;][OMS][2011-02-12 20:51:57 312] ERROR [TP-Processor11] JDBCTransaction.rollback(168) | JDBC rollback f...
原 oracle执行update一直处于执行中,跟卡住一样
问题: 在数据迁移过程中,遇到大量对表中异常数据进行处理的操作,比如:字段中包括tab、换行符、或者回车符号,这时需要对字段进行update操作,同时就出现update死锁的情况 原因和解决方法 这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,orac...
Oracle实现MD5加密
Oracle实现MD5加密,内含示例代码。
oracle数据库使用wm_concat()函数时遇到的一个问题
问题描述:有一次在使用wm_concat()函数时,控制台报整个错误:wm_concat Ora-06502:PL/sql:数字或值错误。 遇到问题第一时间找度娘。网上各位大神说是字符串儿缓冲区太小。 首先,我们先看一下wm_concat(列明)具体是干嘛的.该函数可以把列值以","号分隔起来,并显示成一行。 为什么会出现报这个错误呢?我们看一下wm_concat(列明),参数的类型“列明”
oracle 函数授权问题(00904 标识符无效)
如果在一个schema下建立函数,例如在A下建立函数function test()。然后要在B下使用。我执行了  GRANT EXECUTE ON &quot;A&quot;.&quot;test&quot; TO &quot;B&quot;;这样后在B用户使用A.test()是可以,但是使用test()会包ora的00904 标识符无效的错误。解决方法为create or replace public synonym test for A.test;GR...
oracle 日志文件组六种状态
日志文件组的状态一般有INACTIVE、ACTIVE、CURRENT、UNUSED、CLEARING、CLEARING_CURRNT等六种状态: v$log 保存控制文件中的日志文件信息。 SQL> SELECT STATUS FROM V$LOG; UNUSED : 表示该联机重做日志文件组对应的文件还从未被写入过数据,通常是刚刚创建的联机重做日志文件或重建后的联机重做日志文件。 CUR
解决k8s出现pod服务一直处于ContainerCreating状态的问题的过程
参考于: https://blog.csdn.net/learner198461/article/details/78036854 https://liyang.pro/solve-k8s-pod-containercreating/ https://blog.csdn.net/golduty2/article/details/80625485 根据实际情况稍微做了修改和说明。 ...
Android学习笔记之Service应用
Service(服务)是能够在后台执行长时间运行操作并且不提供用户界面的应用程序组件。其他应用程序组件能启动服务,并且即便用户切换到另一个应用程序,服务还可以在后台运行。此外,组件能够绑定到服务并与之交互,甚至执行进程间通信(IPC). 一、Service概述 1.Service的分类 服务从 本质上可以分为以下两种类型 ①Started(启动): 当应用程序组件(如activity)通
【Effective Java】理解 - 在构造过程中JavaBeans可能处于不一致的状态
《Effective Java》的第二条:遇到多个构造器参数时考虑用构建器 有这样一段话: 遗憾的是,JavaBeans模式自身有着严重的缺点。 因为构造过程被分到了几个调用中,在构造过程中JavaBeans可能处于不一致的状态。 类无法仅仅通过检验构造器参数的有效性来保证一致。 试图使用处于不一致状态的对象,将会导致失败,这种失败与包含错误的代码大相径庭,因此它调试起来非常困难。 ...
kubernetes的pod或instance一直处于pending状态的解决方案
问题复现: 6台虚拟机上,kong组件(一个用于部署api服务的组件)副本数为4,总有一两个instance起不起来,一直处于pending状态,如下: 解决思路: 整体解决思路:pod -&gt; instance -&gt; DeamonSet -&gt; ConfigMap 1、哪里有问题就进去干,话不多说,直接describe一下处于pending...
云主机创建错误
Exceeded maximum number of retries.Exceeded max scheduling attempts 3 for instance307856cd-74d4-4f01-90f5-d88a5a1b0f15. Last exception: Binding failed for port 9a056fe5-c5fd-461e-8224-7be4970f12df,ple...
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo