mysql ora 24344_navicat执行oracle函数脚本报错24344怎么办

131f6de03863f25360e1312f7b97f913.png

1.在Navicat中新建一个SQL查询窗口,输入以下存储过程。

这段存储过程的意思是以一个整数为参数,输入工资最高的前几个(参数值)员工的信息。create or replace procedure my_p (v_n in number) is

cursor csr is select * from emp order by sal DESC;

i number :=0;

begin

for v_emp in csr loop

i := i+1;

dbms_output.put_line(v_emp.ENAME || '--' || v_emp.SAL);

if i = v_n then

exit;

end if;

end loop;

end;

2.选择以上代码 --> “运行已选择的”

1597f6dc83d274983acf6a1369174830.png

3.若出现以下信息,则说明软件没有问题。 而是我们(你自己)的代码出问题了。

06a74bbac7548873056da4b7a8106003.png

那么这时候需要去检查我们(你自己)的代码,如dbms输出时字段名连接字符串的时候,有无双竖线、该有的分号有没有加上。一般到这一步,90%朋友的问题基本解决了。

4.如果实在不行,那么只能试一试这个办法:

在窗口的左侧,点击你的用户,比如我的SCOTT用户。

bc3f8476d4d7a8a71521d4e7b44b179c.png

然后双击我们的EMP表(你自己需要操作的表),具体原理不太清楚,只是自己这么弄一下之后,就不会出现编译错误了,可能Navicat需要预加载数据?

8367a50ce52bc2f3a9abebf43fccf187.png

5.再去运行代码,这时候应该93.57%朋友的问题得到解决了。

tips:

a.网上说的大小写问题我试过了,没有影响。但是不排除Navicat版本的特殊性。我在这里用的是Navicat12.1版本。

b.剩下的6.43%问题没有解决,可能是其他问题,一般按照以上方法做过之后,基本都会解决。

c.记得要把数据库和用户选择了。这里会导致权限等问题。

69d57462fda3c0ce93c175c5feebeca1.png

aeecdda2a34de4b59c74787526a070bb.png

OracleNavicat出现 ORA-24344: 成功, 但出现编译错误 的解决办法 Navicat出现 ORA-24344: 成功, 但出现编译错误 的解决办法 相信很多朋友是在navicat中创建存储过程的时候碰到的这个问题,我之前以为是软件的bug,但是想这么大的公司不会出这种低级错误。来回折腾之后,找到了解决办法,或者说测试办法。如下。 1.在Navicat中新建一个SQL查询窗口,键入以下存储过程。 这段存储过程的意思是 以一个整数为参数,输入工资最高的前几个(参数值)员... 阅读详情

相关推荐

oracle存储过程报错> ORA-24344: success with compilation error的原因,execute immediate 执行动态SQL

Oracle存储过程如下,测试: create or replace procedure pro_demo is begin select * from k_cicpa; end 错误信息: > ORA-24344: success with compilation error 而在SQL中直接像下面这样可以正常工作,exec 这个存储过程可以正常显示查询结果。 --dr...

wh445306 1万+

Oracle创建触发器报ORA-24344: 成功但有编译错误

解决方案: 1、检查是否有关键字冲突 2、检查字段是否带引号。 我是第二种解决的: create or replace trigger FORMATION_FLOW_AUTOINCREMENT before insert on CY3_FORMATION_FLOW_PRESSURE for each row begin select SEQ_FORMATION_FLOW.nextval into:new."batchId" from dual; end; ...

冲出仁川,走出马德里,故事还会再继续 6843

ORA-24344: 成功, 但出现编译错误

列名表明必须大写,这是在oracle创建同位词的时候报的错,也就是创建只读用户的时候,要给所有表权限时,如果表名有大写的话就会报这个错,所以oracle还是劝大家能用大写就用大写。虽然也不知道为啥,换成大写就成功了。

m0_47265520的博客 1148

记一次安装Oracle数据及后期Navicat编辑过程

因为之前都是用MySQL,所以对Oracle并无过多的了解故写此篇进行记录以便之后安装。不然每次都需要重新查找实在麻烦。∑(っ°Д°;)っ卧槽,不见了 *注:以下过程中,默认电脑为win10系统,数据库可视化工具为Navicat。 一.下载安装 1.下载 1.1官网下载 下载地址:https://www.oracle.com/technetwork/cn/database/enterprise-e...

qq_34793634的博客 443

navcat设置oracle表主键自增_[数据库] Navicat for Oracle设置唯一性和递增序列实验

标签:这篇文章主要讲述Navicat for Oracle设置唯一性约束和设置某字段为递增序列。文章主要以图文为主,虽然都是非常简单基础的文章,但还是希望对你有所帮助。推荐前一篇文章:[数据库] Navicat for Oracle基本用法图文介绍一. 设置唯一性参考文章:Oracle之唯一性约束(UNIQUE Constraint)用法详解唯一性约束英文是Unique Constraint,它是...

weixin_39876877的博客 922

oracle设置值唯一性,Navicat for Oracle设置唯一性和递增序列

一. 设置唯一性参考文章:Oracle之唯一性约束(UNIQUE Constraint)用法详解唯一性约束英文是Unique Constraint,它是指表中一个字段或者多个字段联合起来能够唯一标识一条记录的约束。联合字段中,可以包含空值。那唯一性约束与主键又有什么区别呢?你可能会疑惑主键(Primary Key)不是唯一标识一张表的吗?主键是所有组成主键的列都不能包含空值,而如果唯一性约束由多列...

weixin_33915387的博客 1533

[数据库] Navicat for Oracle设置唯一性和递增序列实验

这篇文章主要讲述Navicat for Oracle设置唯一性约束和设置某字段为递增序列。文章主要以图文为主,虽然都是非常简单基础的文章,但还是希望对你有所帮助。主键是所有组成主键的列都不能包含空值,而如果唯一性约束由多列组成,其中的部分列可以包含空值。设置递增序列的主要步骤包括: 1) 设置序列 2) 设置对应序列和表的触发器 3) 插入数据时使用对应的触发器

杨秀璋的专栏 2万+

关于oracle的sequence和trigger。

原先mysql中每个自增字段,在oracle中就需要建立一个sequence和一个trigger。 就算同一个表中有x个自增字段,那么就需要建立x个sequence和x和trigger。 实际中,我建立了915个sequence和915个trigger。因为mysql有915个自增自段。 生成的语句如下: create sequence SEQ_E3_910_YUGOU_GOODSM...

weixin_30426065的博客 203

ORACLE数据库-报错情况处理

执行PL/SQL代码时,程序试图将一个太大的字符串放入一个预定义的字符串缓冲区中想存入数据库的数据(包含数据,字符串等等)不符合该字段的定义(比如长度,约束等), 举个例子,就是说你想存一个空值到非空字段,如存入3位以上的数字到NUMBER(2)字段中,或者将长度为12的字符串放到 varchar2中等等。

tonight_730的博客 1738

oracle 触发器 异常处理,Oracle 触发器错误 ORA-24344

我想在Sql插入时如果没有ID执行ID自增长我测试过的的2份触发器代码:create trigger INCR_ID before insert on GZ_PRO_ACCEPT for each row when (new."ID" is null)beginselect seq_uid.nextval into:new."ID" from dual;end;其中下面这份我连接远程服务器,类比上...

weixin_32867521的博客 2123

数据库-在navicat中使用Oracle,解决报错

navicat中使用Oracle

qq_42229960的博客 434

oracle copy 出错,本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案...

因为要更新数据库加个表,远程桌面又无法连接。。。所以就远程到另外一台电脑,然后用navicat通过内网修改目标数据库。一直用着navicat操作数据库,所以很速度的弄好然后新建连接进入数据库。然而意外就发生了,Cannot create oci environment !!!什么鬼???用了这么久第一次碰到这个问题,各种百度发现是oci.dll文件版本不对,然后就是更换oci文件因为远程的是Ora...

weixin_39633807的博客 304

navicat oracle存储过程,Navicat 运行 Oracle 存储过程示例

navicat 存储过程界面功能点击运行时,会弹出窗口填入输入参数。 使用Navicat创建存储过程在函数位置,右键新建函数, OUT参数没有默认值,写了也没用。 软件自动生成存储过程框架,然后人去补充“声明变量”和“主体”部分,注意存储过程名称可以用引号,也可以不用引号。 Navicat 运行存储过程方法一:使用 Navicat 软件界面功能 方法二:在查询界面创建变量并调用存储过程 Orac...

weixin_39730263的博客 4305

navicat 连接 oracle (最全解读)

navicat oracle

global_coding的博客 8605

Navicatmysql导入sql脚本报错

Navicatmysql(5.7版本)导入sql文件报错1007—”Can't create database 'staff manager'; database exists和1273:Unknown collation: 'utf8mb4_0900_ai_ci’错误

m0_64730123的博客 2262

oracle脚本中的过程调用函数,navicat执行oracle函数脚本报错24344怎么办

navicat执行oracle函数脚本报错24344怎么办,你自己,代码,用户,存储过程,的是navicat执行oracle函数脚本报错24344怎么办易采站长站,站长之家为您整理了navicat执行oracle函数脚本报错24344怎么办的相关内容。1.在Navicat中新建一个SQL查询窗口,输入以下存储过程。这段存储过程的意思是以一个整数为参数,输入工资最高的前几个(参数值)员工的信息。cr...

weixin_39723899的博客 729
上一篇: python中用来计算集合交集的是_python – 计算集合列表中所有组合的交集
下一篇: php 如何让html表单当中的数据在修改mysql的时候自动变更_php 如何在HTML页面中实现对数据库表数据的增删改查...
雯雯呀
博客等级 码龄9年 45粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值