1.SELECT PRODUCT_NAME, PRODUCT_PRICE*0.8 FROM PRODUCT
pl/sql中“=”表示比较,“:=”表示赋值。
现在越来越多人用plsql 查询和执行sql,因为该工具很方便,不仅可以执行sql、以及命令窗口,但是呢,有时候我们执行完sql,可能忘记保存或者当时觉得可能不怎么重要,就没有保存, 等到了第二天或者过段时间...,想看看之前执行的sql,这时候怎么办呢?...首先打开sql窗口,如图所示 ? 然后,按住 CTRL+E,就会显示之前执行过的sql语句啦 ?...但是显示的好像只有最近200条的,,所以大家在执行sql 的时候,最好还是每天可以备份一下自己执行过的sql语句,毕竟好记性不如烂笔头
另外还有其他过程语言可用,但是它们没有被包括在核心发布中, 如PL/R等,我们可以在第三方开源网站来获取它们的源码。 接下来我们主要看一下 PL/pgSQL - SQL过程语言。...PL/pgSQL - SQL过程语言 PL/pgSQL 是 PostgreSQL 数据库系统的一个可加载的过程语言,它的设计目标是创建一种可加载的过 程语言,可以: 用于创建函数和触发器过程 为 SQL...一、概述: PL/pgSQL函数在第一次被调用时,其函数内的源代码(文本)将被解析为二进制指令树,但是函数内的表 达式和SQL命令只有在首次用到它们的时候,PL/pgSQL解释器才会为其创建一个准备好的执行规划...如果在一个条件语句中,有部分SQL命令或表达式没 有被用到,那么PL/pgSQL解释器在本次调用中将不会为其准备执行规划,这样的好处是可以有效地减少 为PL/pgSQL函数里的语句生成分析和执行规划的总时间...鉴于以上规则,在PL/pgSQL里直接出现的SQL命令必须在每次执行时均引用相同的表和字段,换句话 说,不能将函数的参数用作SQL命令的表名或字段名。
End; 7 / PL/SQL procedure successfully completed....End; 7 / PL/SQL procedure successfully completed....End; 7 / PL/SQL procedure successfully completed....End; 7 / PL/SQL procedure successfully completed....End; 7 / PL/SQL procedure successfully completed.
执行$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql。 7. 以读写模式打开新的PDB。...sys. orcl>exec dbms_pdb.describe(pdb_descr_file=>'/home/oracle/tmp/orcl.xml'); PL/SQL procedure successfully.../SQL procedure successfully completed.... 5 Elapsed: 00:00:00.00 03:20:10 sys. ora12c> 6.执行 $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql...Elapsed: 00:00:00.00 03:21:36 sys. ora12c>@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql … … 7.以读写模式打开新PDB
除此之外,Oracle自身的一些数据库对象,如目录,PL/SQL代码等等这些都是元数据,都需要存放在数据字典中。随着12c 容器数据的普及,Oracle数据字典发生了哪些变化呢,下文即是具体描述。...3、数据字典包括的内容 数据库对象的定义信息 用户定义信息 PL/SQL代码 用户创建的其他对象等 关于数据字典详细介绍可以参考:Oracle 数据字典和数据字典视图 二、CDB数据库中数据字典架构 1...如下图显示PDB中的数据字典包含指向根中数据字典的指针。在内部,Oracle提供的对象(如数据字典表定义和PL / SQL包)仅在根中表示。 ?...这种架构实现了CDB内的两个主要目标: 减少重复 例如,DBMS_ADVISORCDB不是将PL / SQL包的源代码存储在每个PDB中,而是将其存储在CDB$ROOT其中,从而节省了磁盘空间...--切换到pdb容器数据库cdb1pdb1 SQL> alter session set container=CDB1PDB1; --在PDB中查看是否存在表T1 SQL> select name,owner
/apex/apxremov_con.sql PL/SQL procedure successfully completed....app/oracle/product/12.2.0/dbhome_1/rdbms/admin/catctl.pl] Run in c = PDB1 Do not run in...to CPU Count [1] Parallel SQL Process Count (PDB) = 2 Parallel SQL Process Count (CDB$ROOT) = 4.../12.2.0/dbhome_1/rdbms/admin/catctl.pl -c 'PDB1' -I -i pdb1 -n 2 -l /u01/app/oracle/product/12.2.0/dbhome...SQL ***************** Parallel Phase #:42 [PDB1] Files:13 Time: 112s Restart Phase #:43 [PDB1
5.3.1.使用maxDepth进行深度遍历 5.3.2.使用while和$depth进行深度遍历 5.4.RETURN上下文变量的使用 5.5.使用count(*)而不是count(1) 5.6.分组查询...为node定义一个别名,在整个模式中可以根据这个别名来访问这个node,类似于SQL中table的别名。 定义匹配当前node的过滤条件,它支持大部分SQL中的where语法。...定义深度遍历的最大深度,后续会有例子详细解释。...orientdb3.X新增加的特性,必须和while或者maxDepth一起使用,该值用于存储遍历的深度,在return中可以通过该值获取每次遍历深度的值。...orientdb3.X新增加的特性,必须和while或者maxDepth一起使用,该值用于存储遍历的路径,在return中可以通过该值获取每次遍历路径下的点。
如下SQL,我们尝试执行如下两个SQL: TRAVERSE Bio FROM (SELECT * FROM Profiles WHERE Id = 1) TRAVERSE Hello FROM (SELECT...注意:where关键字不能用于该SQL。...先执行如下SQL,构造模型数据(基于深度优先搜索算法的选择分支和插入顺序有关,所以如下SQL在创建边时对顺序有所关注,方便后续验证问题): INSERT INTO V(name) VALUES(1),(...可通过如下SQL来验证,通过调整LIMIT的大小来观察两种遍历策略的情况。...总结:最终应该使用哪种SQL,还是要根据具体场景及需求来选择。
> EXEC DBMS_STATS.INIT_PACKAGE(); PL/SQL procedure successfully completed....3 4 5 6 7 8 PL/SQL procedure successfully completed....側 SQL> alter session set container=pdb1; Session altered....READ WRITE NO ---PDB中JOB的状态 SQL> alter session set container=pdb1; Session altered....SQL> EXEC DBMS_STATS.INIT_PACKAGE(); PL/SQL procedure successfully completed.
一、环境准备 12c中包含了2个pdb数据库,分别是cdb1pdb1, cdb1pdb2 其中在cdb1pdb1上有一个db link指向了cdb1pdb2 --演示环境 SQL> select *...------- Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0 PL...上创建用户,用户配置从cdb1pdb1访问 SQL> alter session set container=cdb1pdb2; SQL> create user robin identified by...$ sqlplus hr/hr@cdb1pdb1 SQL> show user; USER is "HR" --创建到cdb1pdb2的数据库链接 SQL> create...('HR','TO_CDB1PDB2.YDQ05.COM'); PL/SQL procedure successfully completed.
> EXEC DBMS_STATS.INIT_PACKAGE(); PL/SQL procedure successfully completed....2345678 PL/SQL procedure successfully completed....READ WRITE NO SQL> PDB/CDB的JOB关联性的测试: SQL> conn / as sysdba Connected....READ WRITE NO ---PDB中JOB的状态 SQL> alter session set container=pdb1; Session altered....SQL>EXEC DBMS_STATS.INIT_PACKAGE(); PL/SQL procedure successfully completed.
END; BEGIN DBMS_OUTPUT.PUT_LINE(compatible); END; / NO PL/SQL procedure successfully completed....SQL> @a.sql YES PL/SQL procedure successfully completed. 基本的准备工作做完了,也算是有惊又险。 我们创建PDB,注意文件路径的映射。...Total patches installed: 7 所以在做了一个艰难的决定之后,我决定在主库重新给这个PDB部署Patch,然后运行noncdb_to_pdb.sql 但是这样做的风险就是这个PDB...再次运行noncdb_to_pdb.sql的脚本。 SQL> alter session set container=actvdb; Session altered....SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql 看到上次抛出ORA-00600的地方会快就顺利完成了,心里总算松了口气。
解决方法 添加系统环境变量: Paste_Image.png NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
一.安装 使用pl sql developer的版本7以上,下载CnPlugin插件,文件解压缩后,将里面的CnPlugin.dll和CnPlugin文件夹放到你的pl sql的安装路径中的PlugIns...文件夹的下面 此链接有CnPlugin插件的安装包: https://download.csdn.net/download/qidaihuimou/12001092 安装好后如下图: 二.打开pl...sql developer软件,会显示出你安装的CnPlugin插件 三.打开插件 汉化版:在菜单栏工具–>配置插件 里面配置 CnPlugin 英文版:在菜单栏 Tools –> Configure...例如:在你的sql的窗口中,输入be,然后按空格键,则自动补全②处完整代码 五.批量添加单引号 汉化版:在菜单栏工具–>首选项–>键配置 在右侧找到 plugins/cnplugin/expaste...,然后随便输入你键盘的按键来设置它的快捷键,此处为ctrl+d,然后保存 六.添加 在sql窗口中,输入字符串666,777,888,999 然后选中它,按刚才设置的快捷键ctrl+d,理想情况是让它变成
在本系列文章【 Where is my data】中,我已经演示了如何从ASM磁盘中定位和抽取一个Oracle的block,为了让这件事做起来不那么复杂,我又写了一个perl脚本find_block.pl...find_block.pl find_block.pl是一个perl脚本,脚本里集成了dd或kfed命令来从ASM磁盘中抽取一个块,脚本可以在Linux和Unix的ASM版本下工作,且不管是单实例还是RAC...我们来看一个ASM 12.1.0.1 版本下的一个例子,是一个Exadata环境下双节点的RAC,数据文件是PDB中的一个数据文件。...> alter pluggable database BR_PDB open; Pluggable database altered....PDB$SEED READ ONLY NO ... 5 BR_PDB READ WRITE NO SQL> $ sqlplus bane/welcome1@BR_PDB SQL
/perl/lib $ORACLE_HOME/rdbms/admin/catctl.pl -n 8 $ORACLE_HOME/rdbms/admin/catupgrd.sql @/home/oracle.../shell/log/postupgrade_fixups.sql 8....pdbcdrs; alter pluggable database pdbcdrs open; shutdown immediate; @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql.../rdbms/admin/catuptabdata.sql @?.../rdbms/admin/utluptabdata.sql execute dbms_preup.run_fixup_and_report('INVALID_SYS_TABLEDATA'); execute
但是,数据字典自身的元数据必须共享,举个例子就是,所有dbms_xxx的PL/SQL包都存储在CDB$ROOT中,PDB中仅存放指向他们的一个链接。...现在,在PDB中做同样的操作。 SQL> alter session set container=pdb1; Session altered....SQL> alter session set container=pdb1; Session altered....我在PDB中也要做相同的操作: SQL> alter session set container=pdb1; Session altered..../rdbms/admin/noncdb_to_pdb.sql这个脚本里的内容吧,这里有你想了解的一切。
(线上数据库用是SQL Server2012)关于数据统计汇总的问题肯定会用到遍历统计汇总,那么问题来了数据库中如何遍历呢?...好像并没有for和foreach这种类型的功能呀,不过关于数据库遍历最常见的方法当然是大家经常会想到的游标啦,但是这次我并没有使用游标,而是通过创建临时表的方式来更新遍历数据的。...通过临时表while遍历数据,更符合我们日常的编程思想操作集合原则,性能上虽不敢保证表使用游标要好多少,但是在把临时表使用恰当的前提是能减少大量的性能消耗,并且使用起来非常简单易懂。...临时表遍历更新SQL语句: ----SQL SERVER通过临时表遍历数据 -- 判断是否存在(object(‘objectname’,‘type’)) IF OBJECT_ID('tempdb.dbo...遍历更新成功后结果如下图所示: ?
领取专属 10元无门槛券
手把手带您无忧上云