首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Oracle总结【PLSQL学习】

程序:;号表示每条语句结束,/表示整个PLSQL程序结束 PLSQL与SQL执行有什么不同: (1)SQL是单条执行 (2)PLSQL是整体执行,不能单条执行,整个PLSQL结束用/,其中每条语句结束用...;号 ---- PLSQL变量 既然PLSQL是注重过程,那么写过程程序就肯定有基本语法,首先我们来介绍PLSQL变量 PLSQL变量有4种 number varchar2 与列名类型相同 与整个列类型相同...设置显示PLSQL程序执行结果,默认情况下,不显示PLSQL程序执行结果,语法:set serveroutput on/off; set serveroutput on; 使用基本类型变量,...当定义变量时,该变量类型与某字段类型相同时,可以使用%type 当定义变量时,该变量与整个结构完全相同时,可以使用%rowtype,此时通过变量名.字段名,可以取值变量对应值 项目中,常用...到目前为止,我们PLSQL是有几个缺点PLSQL不能将其封装起来,每次调用时候都要将整片代码复制来调用 有的时候,我们想要将PLSQL代码保存起来,只能自己手动保存在硬盘,非常麻烦 我们学数据库就是为了让程序能够调用

2.3K70

PLSQL --> 动态SQL常见错误

本文介绍了动态SQL常见问题。 一、演示动态SQL使用 下面的示例,首先使用动态SQL基于scott.emp创建tb2,然后里直接使用动态SQL从新获取记录数并输出。...1.使用动态DDL时,不能使用绑定变量 下面的示例,在创建表示,使用了绑定变量:dno,在执行时候收到了错误信息。...动态SQL语句查询需要传递名,因此收到了错误提示。...使用USING传递参数到动态SQL或使用INTO子句传递结果集到变量应注意按正确顺序排列处理 下面的示例由于v_ename与v_sal为不同数据类型,在使用INTO时不小心将顺序颠倒,导致错误产生...SELECT 查询不能使用RETURNING INTO返回 下面的示例,使用了动态单行SELECT查询,并且使用了RETURNING子句来返回值。

2.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

Web-第二十四天 Oracle学习【悟空教程】

l 虚拟网卡设置 本机和虚拟机之间能相互访问,它们IP段必须相同,但是本机将会连接不同网络环境(比如教室、宿舍、家庭),那么本机IP段产生变化就连不上虚拟机了,为了避免这种情况我们让本机和虚拟机之间用虚拟网卡方式互相通信...l 用户: 用户是在实例下建立。不同实例可以建相同名字用户。 注: 数据,是有用户放入某一个空间,而这个空间随机把这些数据放到一个或者多个数据文件。...范例:查询出每个员工上级领导 分析:empmgr字段是当前雇员上级领导编号,所以该字段对emp产生了自身关联,可以使用mgr字段和empno来关联 ?...,我们发现在order_detail插入order_id在order并不存在,这样在数据库中就产生了脏数据。...尤其注意不能有大字段(blob,clob,long),如果有,提示不能导出(提示如下: table contains one or more LONG columns cannot export

1.8K20

PLSQL Developer几个可能隐患

,你要保证程序,或者在工具执行SQL顺序上,DML和DDL不要有交叉相互影响。...例如开发人员在PLSQL Developer会话增删改数据,但是忘了或者其他原因没做commit/rollback,再操作其他会话,会看到这个变更未生效,产生混淆。...之所以DML语句需要显示提交,原理层讲,DML记录redo和undo信息,undo存储是修改数据前镜像,当执行rollback时,可以利用undo数据进行恢复,当执行commit时,Oracle...黑客在PLSQL DeveloperAfterConnect.sql文件中加入了勒索代码,然而此文件在官方软件为空文件,该勒索病毒就是利用了这个文件注入病毒代 码,在用户连接数据库后立即执行,并在告警日志出现自动任务执行错误...大致逻辑是, 1.判断数据库建库时间是否大于1200天。 2.隐藏了1200天,就会将sys.tab$数据导入名为"ORACHK||SYS_GUID前10位"

1.9K10

FORALL 之 SAVE EXCEPTIONS 子句应用一例

对于大批量DML操作中出现错误,除了使用DML error logging特性来记录在DML期间出现错误之外,使用批量SQL语句FORALLSAVE EXCEPTIONS是不错选择之一...2、需要将数据库A一些数据同步到数据库B对应目的       3、如果同步过程中出现某条特定记录错误,则写该记录产生错误信息(含名,主键)到日志,并将其原同步状态更新为N,否则更新为...-->为emp_dest 添加约束用于在insert过程触发错误产生 scott@CNMMBO> alter table emp_dest add constraint ck_sal check(sal...emp_tab嵌套基于源,因此出现数据缓冲太小错误 PL/SQL procedure successfully completed. 2、内层exceptionbulk_error处产生异常...上面由于源is_sync列有约束限制,只允许出现C或E值,而bulk_error是更新为N,所以给出错误提示 我们来看看err_log_tbl,两条源到目标在非insert时产生错误信息已经被记录到日志

77010

.NET程序连接Oracle一次执行多行SQL注意事项

以前写基于MSSQL数据库.NET程序,不用担心SQL语句中;或者换行符。...Oracle.ManagedDataAccess.Client.OracleException:ORA-00911: invalid character 单行SQL如果有换行时,加了;就报上面的错,多行执行时候...,会报下面这种错误 Oracle.ManagedDataAccess.Client.OracleException:ORA-06550: line 1, column 1: PLS-00103: Encountered...虽然网上能搜索到ExecuteNonQuery执行Oracle多条SQL时候需要用到以下结构 BEGIN SQL1; SQL2; SQL3; END; 但是并没有人提到一定要确保整个SQL是一行,必须没有换行...一条血教训 BPM移动互联一点想法 6年做BPM实施、开发、推广应用一个小结 崔牛2017云图看BPM市场 原创FlowPortal用户手写签名插件:Signature

98130

oracle存储过程中使用create table as

Oracle 背景 今天有个同学跟我说存储过程无法建,我本地试了一下嚯嚯果然不行。...报错PLS-00103 是因为存储过程执行DDL语句是需要用EXECUTE IMMEDIATE调用sql,编译成功。 测试报错ORA-01031:权限不足。...方法一 使解析环境为调用该存储过程用户所在Schema,执行该存储过程时拥有调用者所有权限,即调用者Role是有效。...方法二 CREATE TABLE想使用CREATE ANY TABLE权限,而CREATE ANY TABLE权限来自DBA角色,默认情况下,虽然在会话环境可见,可以显示地将CREATE ANY TABLE...权限授予用户就可以了 GRANT CREATE ANY TABLE TO 登录用户; 但是在包存储过程是不能用方法一 会报错误:PLS-00157: AUTHID 只允许在方案级程序中使用

3.1K20

3 万字,关系型数据库性能体系,设计和效率提升

如果违反了 2NF,那么应该把这个属性关系拆分,也许单独形成一个,绝大部分情况下是将该属性归并到某个相关实体表。...主键是每行数据唯一标识,保证主键不可随意更新修改,在不知道是否需要主键时候,请加上主键,它会为你程序以及将来查找数据错误等等,提供一定帮助。...当 ORACLE 处理多个时,运用排序及合并方式连接它们:首先,扫描第一个(FROM子句中最后那个)并对记录进行排序,然后扫描第二个(FROM子句中最后第二个),最后将所有第二个检索出记录与第一个合适记录进行合并...PLSQL 程序占用 CPU 情况 1、系统解析SQL语句执行,消耗CPU使用; 2、运算(计算)消耗CPU使用。...PLSQL优化、索引不使用问题产生影响: 对于某段不优化程序或语句频繁或者全扫描一个时,它访问磁盘时间和占用吞吐量是很高,这就导致系统 IO 长时间处于忙状态,导致整个系统性能下降。

1.5K20

连接远程数据库ORACLE11g,错误百出!

客户机PLSQL DEV访问虚拟机ORACLE11g,错误百出! 创建时间: 2017/10/14 18:44 作者: CNSIMO 标签: ORACLE 忙了一下午,只有两个字形容:麻烦!...首先使用DCA(在oRACLE开始菜单文件夹里面,缩写哦),打开后会显示几个选项,选择【创建数据库】,然后下一步,之后几个步骤一直到创建数据库完毕,并没有出任何错误,所以就不多说了,唯一出现错误可能就是提示类似...Tip:如果你在你不知道什么情况情况下,你使用Net Manager做了一些操作,而且你也忘了原来是什么了,不要紧,关闭Net Manager窗口时候提示你是否保存,选择否即可恢复!...然后,在connection安装图示设置,instantclient位置。 ? 很重要一步,到虚拟机注册查看NLS_LANG值,若无此路径则直接查找NLS_LANG,复制此键值。 ?...至于最后一个问题,请检查环境变量NLS_LANG值是否和远程主机注册值相同,切记不要手敲!如果还是这个问题,可能是你刚配置完环境变量,cmd命令框还是之前开,请重开一个cmd再次尝试。

75600

连接远程数据库ORACLE11g,错误百出!

客户机PLSQL DEV访问虚拟机ORACLE11g,错误百出! 创建时间: 2017/10/14 18:44 作者: CNSIMO 标签: ORACLE 忙了一下午,只有两个字形容:麻烦!...首先使用DCA(在oRACLE开始菜单文件夹里面,缩写哦),打开后会显示几个选项,选择【创建数据库】,然后下一步,之后几个步骤一直到创建数据库完毕,并没有出任何错误,所以就不多说了,唯一出现错误可能就是提示类似...Tip:如果你在你不知道什么情况情况下,你使用Net Manager做了一些操作,而且你也忘了原来是什么了,不要紧,关闭Net Manager窗口时候提示你是否保存,选择否即可恢复!...7.然后,在connection安装图示设置,instantclient位置。 ? 8.很重要一步,到虚拟机注册查看NLS_LANG值,若无此路径则直接查找NLS_LANG,复制此键值。...至于最后一个问题,请检查环境变量NLS_LANG值是否和远程主机注册值相同,切记不要手敲!如果还是这个问题,可能是你刚配置完环境变量,cmd命令框还是之前开,请重开一个cmd再次尝试。

1.5K00

数据分布决定SQL写法

原SQL还有一个隐患,就是如果t_trade某个cstno对应最大trade_date有重复,那么这个SQL会报ORA-30926 错误无法执行。...在这样一个两数据相差较大特殊情况下,plsql写法确实是比分析函数写法要高效。这个改写非常巧妙。...我们再来分析一下这两种改写优缺点: 1、plsql改写方式,适合在t_customer比较小,而且t_customer 和 t_trade 两记录数比例比较大情况下,执行效率才会比分析函数改写高一些...在本例,如果t_customer记录数是10万,那么分析函数写法反而要比plsql写法快上几十到上百倍。 2、如果在程序代码,一段sql要改成plsql,改动还是有点麻烦。...总结: SQL优化,除了要避免低效SQL写法,主要还是要看表数据量与数据分布情况,plsql改写方法,在少数比较特殊情况下体现出较高效率,在某些数据分布情况下,效率可能还不如原SQL

37610

PLSQL使用「建议收藏」

1.3 进入PLSQL后切换数据库连接: 1.4 PLSQL编写SQL语句并执行 注意:选中要执行语句,再执行,否则将执行所有SQL语句。...执行快捷键为:F8 有的老版本执行语句按钮是这个样子: (真丑) 1.5PLSQL查看数据库结构 在如下界面,按住Ctrl键并将鼠标移动到一个名,此时名变了颜色并出现下划线: 点击名,...便可显示结构,如下图: 1.6PLSQLSQL语句注释 或者按照如下方法: 1.7 对查询结果进行修改、插入行、删除行并保存 修改 在SELECT语句后加FOR UPDATE,再执行,结果如下...导入表格数据 直接在Excel复制行,粘贴到PLSQL查询结果区即可。...2.0存储过程测试 首先找到存储过程(Package bodies),点击右键选择“Edit Spec & Body”,如下图: 进入“包”后,选择要测试存储过程点击右键,选择“Test”,如下图

7.1K10

plsqldev使用指南

Tools菜单–> Object Brower Folders,把你经常点几个目录(比如:Tables Views Seq Functions Procedures)移得靠上一点,并加上颜色区分,这样你平均寻时间大大缩短...同时我觉得等宽字符可以减少程序出错率,所以我所有的工具清一色用Courier New,如果某个IDE不支持这个字体,我基本上会选择放弃。哈,偶系个满挑惕家伙。...下Preference选项User Interface中选择Option,在右边对于Autosave desktop把前面的复选框勾选上。...有时由于PLD识别错误,右键点击对象并不能出来正确菜单,可以在对象所在DDL或DML语句前面,加上分号,这样PLD就能正确判断出对象类型 2、Select for Update 有时我们需要把一些数据导入数据库...下面介绍一下如何Excel中提取文本插入到数据库我们Excel文件中有三列:在数据库建立临时:create table t1 (cino varchar2(100), contno varchar2

1.9K10

LinuxPLSQL视频,PLSQL使用视频教程:PLSQL使用方法「建议收藏」

大家好,又见面了,我是你们朋友全栈君。 不少小伙伴对PLSQL应用还不是很了解,大家不必担心,在PLSQL使用视频教程中会告诉大家如何使用PLSQL。...进入PLSQL后切换数据库连接: PLSQL编写SQL语句并执行 注意:选中要执行语句,再执行,否则将执行所有SQL语句。...执行快捷键为:F8 有的老版本执行语句按钮是这个样子: PLSQL查看数据库结构 在如下界面,按住Ctrl键并将鼠标移动到一个名,此时名变了颜色并出现下划线: 点击名,便可显示结构,...导入表格数据 直接在Excel复制行,粘贴到PLSQL查询结果区即可。...(注意Excel多加一列) 存储过程新建、保存、测试 左边“Packages”点击右键,选择“New”,新建存储过程,右边自动创建“包”和“包体”: 点击“F8”键,执行存储过程并自动保存。

1.2K10

PLSQL12.0.7下载、安装及使用教程

1、PLSQL12.0.7下载 plsql官方下载地址:https://www.allroundautomations.com/bodyplsqldevreg.html 如图,根据自己电脑选择合适版本进行下载...点击install后,立刻打开安装进度页面,在上面可以看到安装进度: 安装完毕之后,在弹出来页面框点击finish即可。...此时,会在桌面上出现plsql快捷图标,如下图: 至此,plsql安装已经完成了。...注意:如果用户名为system或者sys时,身份需要选择SYSDBA 选择my objects,然后选择tables就可以看到自己创建 然后点击new->sql window,就可以打开...发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133952.html原文链接:https://javaforall.cn

2.1K20

Oracle导出Excel几种操作方案比较

最近有个需求,Oracle导出数据到Excel。...可以在存储过程调用utl_file,还可以通过程序进行调用,功能很强大,但是得了解它用法,具体可参考《PL/SQL Packages and Types Reference》这个官方文档。...《一个执行计划异常变更案例 - 外传之查询执行计划几种方法》),因此,可能会对问题判断产生影响。...《PLSQL Developer控制结果集表格自动提交》 《PLSQL Developer几个可能隐患》 《PLSQL Developer中文乱码问题》 《PLSQL Developer免密登录》...因此,采用何种数据导出操作,还是取决于具体需求,结合导出数据量,选择最合适方案。选择过程, 其实就是设计过程,和写程序一样,设计好了,事半功倍,"磨刀不误砍柴工"。

1.6K30

PLSQL操作Oracle创建用户和

1、打开PLSQL,填写用户名和密码(初始有两个用户sys和system,密码是自己安装oracle数据库时定),Database选择ORCL(默认数据库,oracle创建用户就像是mysql数据库...(注:第二章图中三个权限必须设置,否则会出现不能登录或者不能操作错误) 关于3个基本去权限介绍: connect : 基本操作权限,比如增删改查、视图创建等 resource: 创建一些函数...第四个选默认normal,点击登录 5、在最上面可以看到登录状态 6、创建数据库,右键点击左下角列表Tables—》 NEW,创建新数据,填写name,comments...是对表备注,然后在第二张图中填写需要字段及其类型等,最后点击apply应用,如图 7、查看创建,点击左下角列表Tables,右键选自己新建,点击Edit date,编辑内容就行了...以上就是在PLSQL中新建用户,创建步骤,谢谢!

3.4K20

proc插入VARCHAR2字段报ORA-01461: can bind a LONG value only for insert into a LONG column

最近做一个天信达货运接口项目,碰到这么个诡异问题。 背景: 使用proc写应用,向数据库插入记录。中有三个VARCHAR2(4000)类型字段。注:Oracle 9i库。...文章说明了问题之和9i及之前版本有关,并且指出同一个ORA错误可能在高版本中出现,但根本原因和这里要描述不同。...如果有一个这样列,再加上一个LONG列,或者有两个或更多这样列,数据库认为你正在绑定两个LONG列。因此就会报这种错误。 对于以上错误workaround方法,MOS则给出了四种: 1....,如果确认这只会有1个LONG类型,没有大于1333字节VARCHAR类型,或者仅仅有一个大于1333字节VARCHAR类型,就可以绕开这个问题。...但使用PLSQL Developer或SQLPLUS这些非OCI驱动,则不会报错。 2. 使用proc绑定变量,根据上面的实验来看,让ORA-01461这个错误产生更混淆。 3.

2.7K40
领券