今天在调用Oracle Function遇到一个异常 ?...MSD_PN from t_did where diddid = ID; IF MSD_PN IS NOT NULL THEN RESULT := 'ERROR:' || ID || '在系統中不存在...MSD_PN from t_did where diddid = ID; IF MSD_PN IS NOT NULL THEN RESULT := 'ERROR:' || ID || '在系統中不存在
在python脚本中执行shell命令的方法 最近在写python的一些脚本,之前使用python都是在django中使用,可能大部分内容都是偏向于后端开发方面的,最近在写一些脚本的时候,发现了...使用Python处理一个shell命令或者一个执行一个shell脚本,一般情况下,有下面三种方法,下面我们来看: 第一种方法是使用os.system的方法 os.system("cmd") 我们在当前目录下面创建一个...commands.getstatus('aaa.sql') 8'-rw-r--r-- 1 root root 4 Dec 10 20:36 aaa.sql' 有了上面的基础,我们可以很方便的写出如下的代码,把脚本的执行结果和返回值进行保存...,根据脚本执行的结果来确定最终的返回值: 1cmd = "/bin/sh /data/scripts/test.sh %s" % para 2status, res = commands.getstatusoutput...] 7else: 8 result["result"] = false 9 result["message"] = res 10return Response(result) 如果脚本中是对数据库的一系列操作
文章目录 shell 脚本调试系列 概述 启用 verbose 调试模式 在 Shell 脚本中启用语法检查调试模式 通过修改脚本的首行来启用脚本检查 内置的 set 命令来在脚本中启用调试模式 shell...脚本调试系列 Linux 中启用 Shell 脚本的调试模式 在 Shell 脚本中执行语法检查调试模式 在 Shell 脚本中跟踪调试命令的执行 ---- 概述 ?...记住我们之前在本系列的 Linux 中启用 Shell 脚本的调试模式 中解释了不同的调试选项,在这里,我们将使用它们来执行脚本调试。...---- 启用 verbose 调试模式 在进入本指导的重点之前,让我们简要地探索下 verbose 模式。它可以用 -v 调试选项来启用,它会告诉 shell 在读取时显示每行。...: $ chmod +x script.sh 我们可以执行脚本并显示它被 Shell 读取到的每一行: $ bash -v script.sh ---- 在 Shell 脚本中启用语法检查调试模式 回到我们主题的重点
♣ 题目部分 在Oracle中,什么是执行计划? ♣ 答案部分 执行计划指示Oracle如何获取和过滤数据、产生最终结果集,这是影响SQL语句执行性能的关键因素。...在深入了解执行计划之前,首先需要知道执行计划是在什么时候产生的,以及如何让SQL引擎为语句生成执行计划。 在Oracle中,任何一条语句在解析过程中都会生成一个唯一的数值标识,即SQL_ID。...而同一条语句,在解析过程中,可能会因为执行环境的改变(例如某些优化参数被改变)而生成多个版本的游标,不同的游标会有不同的执行计划。...每个游标都会按顺序赋予一个序列号,即CHILD_NUMBER,一条语句生成的第一个游标的CHILD_NUMBER为0;相应的,Oracle会为每个执行计划生成一个HASH值以作区分。...而多个不同版本的游标,其执行计划可能会相同,也可能不同。 本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
♣ 题目部分 阅读如下的执行计划,给出SQL的执行顺序。...CLUSTER |* 13 | INDEX UNIQUE SCAN ------------------------------------------- ♣ 答案部分 分析:采用最右最上最先执行的原则看层次关系...,在同一级如果某个动作没有子ID,那么就最先执行,首先,6、7、9、13最右,所以,6,7最先执行做HASH JOIN,为6,7,5。...所以,该图的执行顺序是6,7,5,9,8,4,11,13,12,10,3,2,1,0。 本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
♣ 题目部分 在Oracle中,执行TRUNCATE后有哪些恢复方法? ♣ 答案部分 在求职数据库相关的岗位的时候,经常会被问到一个问题:在开发或维护过程中误操作TRUNCATE了一张表,如何恢复?...这个时候应该由简到难地回答,可以按照如下的步骤进行回答: ① 是否有测试库,测试库的表数据和当前数据是否一致,若一致,则可以考虑从测试库把表数据导入到被删除的库中。...② 是否有exp或expdp逻辑备份,若有,则可以导入到被删除的库中。 ③ 是否有RMAN备份,若有,则可以将数据恢复到其它地方,然后将数据库exp出来,最后导入到被删除的库中。...& 说明: 有关TRUNCATE比较完整的内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2082965/ 本文选自《Oracle程序员面试笔试宝典
♣ 题目部分 在Oracle中,SQL语句的执行过程有哪些? ♣ 答案部分 Oracle数据库里SQL语句的执行过程可以如下图所示: ?...在查询转换过程中,Oracle会根据一些规则来决定是否对目标SQL执行查询转换,这些规则在Oracle不同的版本里不尽相同。...在Oracle 9i中,查询转换是独立于优化器的,它与优化器的类型无关,但是从Oracle 10g开始,Oracle会对某些类型的查询转换(比如子查询展开、复杂视图合并等)分别计算经过查询转换后的等价改写...只有当等价改写后SQL的成本值小于未经过查询转换的原始SQL的成本值时,Oracle才会对目标SQL执行查询转换。在执行完查询转换后,原目标SQL可能就被Oracle改写了,当然也有可能没有改写。...(5)在得到了目标SQL的执行计划后,接下来Oracle就会根据执行计划去实际执行该SQL,并将执行结果返回给用户。 本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
♣ 题目部分 在Oracle中,如何得到真实的执行计划?...♣ 答案部分 在Oracle数据库中判断得到的执行计划是否准确,就是看目标SQL是否被真正执行过,真正执行过的SQL所对应的执行计划就是准确的,反之则有可能不准,因此,通过10046事件及如下的几种方式得到的执行计划是最准确的...在收集统计信息时,一个与缓存的游标是否失效的很重要的参数为NO_INVALIDATE。在重新收集统计信息时,可以指定NO_INVALIDATE选项。...如果设置为AUTO_INVALIDATE,那么Oracle自己决定Shared Cursor失效动作,当SQL再次执行时间距离上次收集统计信息的时间超过5小时(隐含参数“_OPTIMIZER_INVALIDATION_PERIOD...有些DBA在收集统计信息时,没有使用NO_INVALIDATE=>FALSE选项,所以,即使收集了统计信息,执行计划也不会立即改变。
♣ 题目部分 在Oracle中,如何获取SQL历史执行计划?...♣ 答案部分 历史执行计划只能从AWR中获取,如果AWR没有记录的话,那么就无法获取历史执行计划了,获取历史执行计划的命令如下所示: SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_AWR...下面的例子可以直接从AWR中获取SQL_ID为“bsa0wjtftg3uw”的执行计划,可以看到历史有2种执行计划,一个是全表扫描,一个是索引范围扫描: SYS@RAC2LHR1> SELECT * FROM...本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
在进行容器化、Kubernetes 化转变的过程中,如何直接给虚拟机 (VM) 分发文件,在虚拟机上执行脚本是本文思考的重点。...5.2 准备分发文件、执行脚本 文件目录结构 demo Dockerfile start.sh 以下构建镜像相关的命令都是在 demo 目录中执行。...ip 表示虚拟机在这个分区中的 IP 地址。在实践过程中,可以在安装 Kubernetes 集群时批量处理。...总结 本文主要是在 Kubernetes 下,演示了面向虚拟机如何进行文件分发、脚本执行,给大家在设计 PaaS 平台时提供一点思路。 将 Kubelet 当做传统的 Agent 使用。...示例中使用的是 https 文件,也可以使用本地文件,还可以将 S3 中的文件下载到本地再打包。同时,最终的镜像只比原始文件大几 M。 脚本执行可以继续优化。当 Job 执行完成时,脚本执行也会结束。
图片SORT命令在Redis中实现了对存储在列表、集合、有序集合数据类型的元素进行排序的功能。SORT命令基本原理如下:首先,SORT命令需要指定一个key来表示待排序的数据。...需要注意的是,SORT命令的排序是在Redis服务端进行的,所以当排序的数据量较大时可能会有性能影响。同时,在进行有序集合的排序时,可以使用WITHSCORES选项来获取元素的分值。...Redis中的SORT命令可以使用多个选项,这些选项的执行顺序如下:ALPHA选项先于BY选项执行。...LIMIT选项在执行完ALPHA和BY选项之后执行。这个选项用于限制被排序元素的范围。GET选项在LIMIT选项之后执行。这个选项用于获取元素的特定属性。ASC和DESC选项在GET选项之后执行。...STORE选项在执行完以上选项之后执行。这个选项用于将排序结果保存到一个新的列表中。
/GLOBALS # 输入以下内容后,保存并关闭文件 GGSCHEMA ogg 在SQLPLUS里用SYSDBA执行OGG安装目录下的sequence.sql脚本 @sequence.sql...提示用户信息时输入ogg 在SQLPLUS里用SYSDBA执行以下命令,其中ogg是第1步建立的ogg用户,wxy是要复制的schema 在master1上执行 GRANT EXECUTE on ogg.updateSequence...SYSDBA执行OGG安装目录下的marker_setup.sql脚本 @marker_setup.sql 提示用户信息时输入ogg 在SQLPLUS里用SYSDBA执行OGG安装目录下的ddl_setup.sql...脚本 @ddl_setup.sql 提示用户信息时输入ogg 在SQLPLUS里用SYSDBA执行OGG安装目录下的role_setup.sql脚本 @role_setup.sql 提示用户信息时输入...ddl_enable.sql脚本 @ddl_enable.sql 在SQLPLUS里用SYSDBA执行OGG安装目录下的ddl_pin.sql脚本 @ddl_pin ogg 四、在源和目标库上配置
♣ 题目部分 在Oracle中,如何在不执行SQL的情况下获取执行计划? ♣ 答案部分 1、“EXPLAIN PLAN FOR SQL”不实际执行SQL语句,生成的计划未必是真实执行的计划。...但是,必须要有PLAN_TABLE表,可以执行脚本“@?/rdbms/admin/utlxplan.sql”来创建。...除SET AUTOTRACE TRACEONLY EXPLAIN外其它的AUTOTRACE方式均实际执行SQL。...但是,如果该命令后执行的是DML语句,那么该DML语句是确实被Oracle实际执行过的。 本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
♣ 题目部分 在Oracle中,对表执行COMMENT(注释)操作需要什么权限? ♣ 答案部分 Oracle的COMMENT语句可以给一个列、表、视图或快照添加一个最多2K字节的注释。...注释被存储在数据字典中,并且可以通过数据字典视图DBA_COL_COMMENTS(列的注释)和DBA_TAB_COMMENTS(表的注释)查看COMMENTS列。...对于普通用户下的表,拥有“COMMENT ANY TABLE”或ALTER权限的普通用户都可以执行COMMENT操作。...对于普通用户下的表,拥有“COMMENT ANY TABLE”或ALTER权限的用户都可以执行COMMENT操作: LHR33@test18c> conn lhr/lhr Connected....视图DBA_COL_COMMENTS和DBA_TAB_COMMENTS在做开发时非常实用,举例如下: create table SCOTT.G_PROD_USER_CONF ( func_type
♣ 题目部分 在Oracle中,如何查到会话正在执行的SQL语句?...通过SQL_ID这个字段,可以获取到某个会话正在执行的SQL语句。...SQL_ID VARCHAR2(13) 正在执行的SQL语句ID SQL_CHILD_NUMBER NUMBER 正在执行的SQL语句的子游标的ID,从0开始 SQL_EXEC_START DATE 该会话开始执行该...SQL_EXEC_ID NUMBER SQL执行的标识符ID。若SQL_ID为空或SQL还未开始执行,则该列为空。对应于V$SQL_MONITOR.SQL_EXEC_ID列。...本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
♣ 题目部分 在Oracle中,固定SQL执行计划的方法有哪些?...♣ 答案部分 在实际项目中,通常在开发环境下,一些SQL执行没有任何功能问题,而当到了生产环境或生产环境的数据量发生较大的变量时,其SQL的执行效率非常低。...如果修改源程序的成本比较大,那么可以使用一些方法在不改变源应用程序的情况下更改特定SQL的执行计划并固定下来。因为在SQL语句的执行计划发生更改时,可能存在性能风险。...有4种方式可以固定和控制执行计划,分别是使用Hint(提示)、OUTLINE(存储概要)、SQL PROFILE(SQL概要文件)和SPM(SQL Plan Management,SQL计划管理),如下表所示...本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
这样的场景对于Oracle DBA来说太熟悉了,只要应用一出问题,不论何时,不论何地,总是第一个接到电话,严重情况下会是一轮电话轰炸。...根据等待事件查会话 ---- 得到异常等待事件之后,我们就根据等待事件去查会话详情,也就是查看哪些会话执行哪些SQL在等待,另外还查出来用户名和机器名称,以及是否被阻塞。...如果v$sqlarea中查不到,可以尝试DBA_HIST_SQLTEXT视图中查询。...,更不能在别的节点或者别的服务器上执行。...SecureCRT的Button Bar中,只需要点一下设置好的button,就相当于直接执行相应的SQL语句,这样就不用每次粘贴复制执行,或者是把脚本上传到每个服务器上。
♣ 题目部分 在Oracle中,获取执行计划有哪几种方法?...启用AUTOTRACE后,SQL*Plus会自动收集执行过的SQL语句的执行计划、性能统计数据等,并在语句执行结束后显示在SQL*Plus中。...报告时出错 SQL> @?.../rdbms/admin/utlxplan.sql 在执行如下脚本后,每个用户(包括以后新建的用户)都可以使用AUTOTRACE命令: @?...4physical reads物理读,在执行SQL的过程中,从硬盘上读取的数据块个数。5redo sizeSQL语句在执行过程中产生的Redo的字节数。
♣ 题目部分 在Oracle中,跟踪会话执行语句的方法有哪几种? ♣ 答案部分 因为TRACE的目标范围不同,所以导致必须使用不同的方法。若作用于数据库全局的,则改初始化参数。...需要注意的是,在全局启用SQL_TRACE会产生大量trace文件,很容易耗尽磁盘空间,这通常会导致比较严重的性能问题,所以在生产环境中要谨慎使用,并且及时关闭。...在大多数时候使用SQL_TRACE跟踪的都是当前会话的进程。通过跟踪当前进程可以发现当前操作的后台数据库递归活动,这在研究数据库新特性时尤其有效,在研究SQL执行,发现后台错误等方面也非常有用。...在很多时候需要跟踪其他用户的进程,而不是当前用户,这可以通过Oracle提供的系统包DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION来完成。...SQL语句 3SQL> ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT OFF'; 在Oracle 11g中还可以对单个SQL打开10046事件跟踪
♣ 题目部分 在Oracle中,如何得到已执行的目标SQL中的绑定变量的值?...♣ 答案部分 当Oracle解析和执行含有绑定变量的目标SQL时,如果满足如下两个条件之一,那么该SQL中的绑定变量的具体输入值就会被Oracle捕获: l 当含有绑定变量的目标SQL以硬解析的方式被执行时...l 当含有绑定变量的目标SQL以软解析或软软解析的方式重复执行时,Oracle在默认情况下至少得间隔15分钟才会捕获一次。...只会捕获那些位于目标SQL的WHERE条件中的绑定变量的具体输入值,而对于那些使用了绑定变量的INSERT语句,不管该INSERT语句是否是以硬解析的方式执行,Oracle始终不会捕获INSERT语句的...查询视图V$SQL_BIND_CAPTURE或V$SQL可以得到已执行目标SQL中绑定变量的具体输入值。
领取专属 10元无门槛券
手把手带您无忧上云