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

Oracle学习(四):组函数

组函数会自动滤空,只统计不为空 SQL> select count(*),count(comm) from emp; --结果不同,count(comm)只统计comm不为空的个数 SQL> --可以在组函数中嵌套滤空函数...SQL> select deptno,avg(sal) 2 from emp 3 group by deptno; SQL> --语法 SQL> --在select列表中所有未包含在组函数中的列都应该包含在...尽量使用where,例外:如果条件中含有组函数,只能使用having SQL> --group by的增强:做部门报表可能用到 SQL> -- group by deptno,job + group...尽量使用where SQL> 例外:如果条件中含义组函数,只能使用having SP2-0734: 未知的命令开头 "例外:如果..." - 忽略了剩余的行。...SQL> -- 例外:如果条件中含义组函数,只能使用having SQL> host cls SQL> --group by的增强 SQL> /* SQL> group by

96620

Python 变量的命名规范

引言 混乱或错误的命名不仅让我们对代码难以理解,更糟糕的是,会误导我们的思维,导致对代码的理解完全错误。...关键字 关键字 就是在 Python 内部已经使用的标识符 关键字 具有特殊的功能和含义 通过以下命令可以查看 Python 中的关键字及数量 In [110]: import keyword...,但定义了一个与关键字 type 同名的变量,导致 type 函数的功能失效了,因此不要定义与关键字同名的变量。...中,如果 变量名 需要由 二个 或 多个单词 组成时,可以按照以下方式命名 每个单词都使用小写字母 单词与单词之间使用 _下划线 连接 例如:first_name、last_name...等其他语言一般用 驼峰命名法,在 Python 中则推荐使用下划线命名法,符合 PEP8 规范。

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

    Python 进阶指南(编程轻松进阶):四、起个好名字

    因为代码被阅读的次数比被编写的次数多,所以宁可选择过长的变量名更加妥当一些。我们来看一些名字太短和太长的例子。 名字太短 最常见的命名错误是选择太短的名字。...例如,在遍历一系列数字或列表索引的for循环中,通常使用i(代表索引)作为变量名,如果有嵌套循环,则使用j和k(因为它们在字母表中位于i之后): >>> for i in range(10): ......如果你选择一个短的通用变量名,比如num或a,你将会得到几个错误的匹配结果。为了使名称易于立即找到,可以使用包含特定细节的较长变量名来形成唯一的名称。...例如,如果你命名一个变量为list或set,你将覆盖 Python 的list()和set()函数,这可能会导致你的代码出现错误。list()函数创建列表对象。...使用这些名称可能会导致代码中出现细微的错误。 计算机不在乎你的名字是描述性的还是模糊的。名字使代码更容易被人类阅读,而不是更容易被计算机运行。如果你的代码是可读的,就很容易理解。

    45940

    ORA-12154: TNS: 无法解析指定的连接标识符解决

    用PL/SQL Developer连接公司Oracle数据库,登录时出现如下错误信息:ORA-12154: TNS: 无法解析指定的连接标识符,(有时可能不会出现错误对话框,但也连不上,多试几次都会弹出如下图的错误对话框...在运行中输入services.msc,打开服务窗口,看看OracleOraDb11g_homeTNSListener这个服务是否正在运行,如果没有运行,则启动。 2. 使用SQL PLUS测试连接。...如果还有问题,我们使用SQL PLUS测试是否能够连接。...运行输入cmd,在命令提示符窗口中输入 sqlplus sys/密码@数据库SID as sysdba 如: sqlplus sys/abc123@orcl as sysdba 如果可以连接,问题就好办了...,则直接打开住里追加就行了。

    4.9K10

    Oracle spfile 参数文件

    使用 spfile 参数文件有以下好处: 动态参数的更改可以立即生效,用户可以选择使更改只应用于当前实例还是应用到spfile,或者都应用; 可以彻底告别手工修改初始化参数文件,也就大大减少了人为错误的发生...连接数据库之后,执行以下命令: show parameter spfile 如果以下框选的地方不为空,则代表当前数据库使用 spfile 启动,否则是 pfile 启动。...所以,如果 ORACLE_SID 设置错误的情况下,如果存在 spfile.ora 文件,那么优先级会跳过 spfileSID.ora 文件,直接优先选择 spfile.ora 文件来启动数据库。...② 使用 spfile 启动数据库后修改参数错误,导致数据库无法启动 一般什么情况下必须用到 pfile 参数文件?...5、注意点 如果是 RAC 集群操作时,由于 RAC 的 spfile 文件是保存在 ASM 磁盘中,所以是跟 pfile 文件配合进行使用。

    1.3K20

    配置ORACLE 客户端连接到数据库

    "@" 指示网络连接所需的用户进程 orcl 连接标识符 连接标识符(connect identifier) @后面的即为连接标识符,如上例中的orcl。...(net_service_name)之后 --如果db_domain为robinson.com,使用scott/tiger@orcl连接,则等同于使用scott@orcl.robinson.com进行连接...使用上面的连接方式进行连接时,则连接标识符orcl被解释为tnsnames.ora中orcl对应 的描述信息,根据描述信息来解析连接服务器 配置listener.ora -->同样可以使用tnsnames.ora...如果客户端连接描述符中使用的是SID,则不再尝试匹配该值,而是对监听器中设置的SID_NAME进行匹配 该参数的值主要从初始化参数文件中的db_name和db_domian中组合得到。...关于GOLBAL_DBNAME总结: 当客户端使用的是SID连接参数,则匹配侦听器配置文件中的SID_NAME项 (主要用于兼容以前的老版本,8i或更早版本) 否则当使用的是SERVICE_NAME,则匹配侦听器配置文件中的

    5.5K30

    SQLPLUS登陆命令「建议收藏」

    一.SQLPLUS登陆命令: 使用sqlplus: 10G之前的版本登陆时需要加引号(单、双引号皆可)如:sqlplus ” / as sysdba” sqlplus -prelim / as sysdba.../orcl 如果监听运行在默认的1521端口,可以不写端口:如下: sqlplus bys/bys@192.168.1.211/bys3 如果不想在命令中输入密码,可以使用:或者为用监听名时:...),鼠标左键按住不动,用右手中指按鼠标右键 5] 这时,所选内容会自动复制到SQL*Plus环境的最后一行 五、使用USERENV函数查询会话信息 USERENV(OPTION)   返回当前的会话信息...OPTION=‘LANGUAGE’返回数据库的字符集.   OPTION=‘SESSIONID’为当前会话标识符.   OPTION=‘ENTRYID’返回可审计的会话标识符.   ...OPTION=‘terminal’返回当前计算机名 使用示例:   SELECT USERENV(‘LANGUAGE’) FROM DUAL; 六、SQLPLUS中插入特殊字符 方法1:设置define

    3K30

    sqlplus登录报ORA-06502错误的问题排查和解决

    当然,我也不是第一次受挫了,归根结底,还是碰见的问题少,对于一些基础原则性知识掌握不够,不能从现象中直接看出本质,导致了方向性上的错误,急也没用,慢慢积累吧,所以还是要总结一下,避免下次再犯同样的错误。...关于ORA-06502的描述: ? 描述的是PLSQL块中,因为实际值超过了变量定义的长度,所以报了这个错。 如果使用错误的密码sqlreviewea,报错: ?...问题到这里,可能有的朋友已经猜到大致的方向了,但我开始排查的方向就出了错误,我尝试用strace查看sqlplus的执行,然并卵,尝试创建使用同样位数的用户sqlreviewea,执行sqlplus登录是正常的...至于使用错误的密码报ORA-01017,很好解释,先进行了用户口令验证,未通过则报这个错,如果通过了,就会执行logon trigger的逻辑,因此报了另一个错误。...如果是schema logon trigger,则对应是ALTER ANY TIGGER权限,效果相同。

    98330

    sqlplus登录缓慢的问题分析过程及解决小记

    因此,判断该系统就是在sqlplus登录的时候才可能出现卡顿。 由于客户的业务并未反馈使用有问题,所以当时仅将该问题记录到日常错误处理日志中。...而对于sqlplus登录缓慢的问题,由于起初不知道是因为数据库原因造成,还是因为命令调用原因造成,所以我们可以考虑选择hanganalyze或者strace的方式进行排查。...为什么会导致这么慢?此时我也有点无从下手了,还好有公司二线专家,请教了二线专家后,让我在strace中在加入-Fr参数,更近一步的去fork调用的子进程。...而经过查询,发现mmap函数主要是Linux下内存映射到文件的一种方法(具体的该函数的内容和功能,我没有详细研究),因此可以猜测,sqlplus登录缓慢的问题,可能出现在内存映射上。...通过以上描述,我们可以知道如果将改参数设置为true的时候,每次我们进行sqlplus登录的时候,实际上都会生成一个Oracle进程,而此时改进程会touch一遍所有需要访问的内存页。

    1.6K71

    一次有意思的错选执行计划问题定位(涉及SYS_OP_C2)

    > 经询问,确认上线时未有大量数据的变更,且上线后手工收集过统计信息。这种猜测不对。 2. 是否因为使用不同的查询条件会有不同的执行计划,由于绑定变量窥探的影响,导致采用了错误的执行计划?...> 因为他用的是引用分区,符合条件的记录在主表如果是存储于多个分区中,是否Oracle认为全表扫描效率高,如果存储于很少的分区,Oracle认为索引扫描效率高?...接着跑一个sqlplus下执行SQL的10053,发现优化器选择的就是索引范围扫描,其成本值最低,而全表扫描的成本值如下: 无论如何,是不会选择全表扫描的啊?...注意filter中显示SYS_OP_C2C("OBJECT_NAME")=:X,说明Oracle对左值使用了一个叫SYS_OP_C2C的函数,我们都知道这个常识,如果对索引字段使用了函数,那么是不会采用这个索引作为执行计划的...如果能排除一些参数影响,定位到什么原因导致索引失效,进而查看列字段定义和应用程序中的字段类型定义,这个问题就可能更快的找到原因。这点还有待加强。 3.

    63320

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

    首先使用DCA(在oRACLE的开始菜单文件夹里面,缩写哦),打开后会显示几个选项,选择【创建数据库】,然后下一步,之后的几个步骤一直到创建数据库完毕,并没有出任何错误,所以就不多说了,唯一出现的错误可能就是提示类似...ORACLE数据库地操作如下(cmd中): 如果是普通用户 sqlplus username/password@hostname/tnsname 如果是sysdba用户,例如sys sqlplus sys...Tip:如果你在你不知道什么情况的情况下,你使用Net Manager做了一些操作,而且你也忘了原来是什么了,不要紧,关闭Net Manager窗口的时候会提示你是否保存,选择否即可恢复!...7.然后,在connection中安装图示设置,instantclient的位置。 ? 8.很重要的一步,到虚拟机注册表中查看NLS_LANG的值,若无此路径则直接查找NLS_LANG,复制此键值。...,例如我通过sqlplus连接的时候将STD.CNSIMO.CN改为STD或者其它随便一个,都会报这个错误。

    1.6K00

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

    首先使用DCA(在oRACLE的开始菜单文件夹里面,缩写哦),打开后会显示几个选项,选择【创建数据库】,然后下一步,之后的几个步骤一直到创建数据库完毕,并没有出任何错误,所以就不多说了,唯一出现的错误可能就是提示类似...ORACLE数据库地操作如下(cmd中): 如果是普通用户 sqlplus username/password@hostname/tnsname 如果是sysdba用户,例如sys sqlplus sys...Tip:如果你在你不知道什么情况的情况下,你使用Net Manager做了一些操作,而且你也忘了原来是什么了,不要紧,关闭Net Manager窗口的时候会提示你是否保存,选择否即可恢复!...然后,在connection中安装图示设置,instantclient的位置。 ? 很重要的一步,到虚拟机注册表中查看NLS_LANG的值,若无此路径则直接查找NLS_LANG,复制此键值。 ?...,例如我通过sqlplus连接的时候将STD.CNSIMO.CN改为STD或者其它随便一个,都会报这个错误。

    80600

    基本概念

    冲突解决如下:如果合并的新变量的名称与父环境中现有变量的名称相同,则新变量在新环境中优先。在以下示例中,内部(嵌套更深)变量x将优先于外部变量x。...例如,函数可以读取文件的内容。如果重复调用该函数,则可以观察到对该文件的外部更改,因此,重新排序可能会导致程序行为出现明显差异。...根据观察到的对 M 表达式正确性的评估顺序会导致对特定实现选择的依赖,这些选择可能因一个评估器而异,甚至可能在不同情况下对同一评估器有所不同。...虽然在 M 中定义的函数不会因此暴露任何此类非确定性行为,但如果它们被定义为调用其他非确定性函数,则它们可以。 M 中非确定性的最终来源是错误。...但是,如果首先计算的子表达式引发错误,则可以确定首先计算两个表达式中的哪一个。

    36930

    Python语言编程规范与优化建议

    如果某个代码段的缩进不对,那么整个程序就是错的,要么是语法错误无法执行,要么是逻辑错误导致错误结果。 (2)每个import语句只导入一个模块,并且要按照标准库、扩展库、自定义库的顺序依次导入。...如果语句确实太长而超过屏幕宽度,最好使用续行符(line continuation character)“\”,或者使用圆括号将多行括起来表示是一条语句。...某行代码中“#”之后的内容将被看做是注释而不执行,三引号则常用于大段说明性文本的注释。 (7)在开发速度和运行速度之间尽量取得最佳平衡。...这时候我们有两个选择,一是使用内置对象和标准库对象编写代码实现特定的逻辑,二是使用特定的扩展库。至于如何取舍,最终还是取决于业务逻辑的复杂程度和对速度的要求这两者之间的平衡。...(8)根据运算特点选择最合适的数据类型。如果定义一些数据只是用来频繁遍历而不需要进行增加、删除或修改操作,最好优先考虑元组或集合。

    1.3K40

    C语言字符串IO

    常见的一个错误写法:scanf要把信息拷贝到参数指定的地址上,而此时的参数是一个未初始话的指针,那么可以指向程中的任意的地址,可能会擦写掉程序中的数据和到吗,导致程序中断。...,如果这些多余的字符只是占据了尚未使用的内存时,并不会立刻出现问题,但是如果它们占擦写掉了程序中的其他数据,会导致程序中止。...如果读入从键盘输入的数据,则以stdin作为参数,改标识符定义在stdio,h中。...如果输入太长,使用gets()不安全,它会擦写现有的程序,存在安全隐患,但是使用gets_s()函数很安全,但是由上面可知超出限定后gets_s()函数可能会中止或者退出程序,所以要知道如何编写特殊的“...由此可见如果输入太长,超过数组可容纳的字符数时,fgets函数最容易使用,而且可以选择不同的处理方法,如果想让程序急促使用输入行中超出的字符可以参考案例二中的处理方法,如果想丢弃初入行的超出字符,可以参考案例三中的处理方法

    4.6K10

    Oracle Sqlplus 运行环境 login.sql 设置

    在运行Sqlplus时经常需要对运行环境进行设置,如果每次输入都要调整参数会比较麻烦,因此可以利用Oracle提供的glogin.sql、login.sql这两个文件对Sqlplus进行环境初始化。...,若未查找到对应文件则执行3; 3.判断是否设置SQLPATH环境变量,如果设置了该变量则在对应路径下查找并执行,未找到则停止查找。...在当前用户的profile文件中设置SQLPATH环境变量 export SQLPATH=$ORACLE_HOME/sqlplus/admin:$SQLPATH 在默认路径下加入我们自己的 login.sql...set serveroutput on size 1000000 --假脱机输出文本时,会去除文本行两端的空格,而且行宽不定,如果设置为off(默认设置),假脱机输出的文本行宽度则等于所设置的linesize...set trimspool on --设置选择LONG和CLOB列时显示的默认字节数 set long 5000 --设置显示的文本宽为300个字符 set linesize 300 --设置SQLPLUS

    1.6K20

    Oracle数据库SQL*Plus命令行执行SQL语句时,中文乱码报错解决方法

    ❤️ Oracle数据库是广泛使用的关系型数据库管理系统,而SQLPlus是Oracle提供的一种交互式命令行工具,用于执行SQL语句。...然而,当在SQLPlus中执行SQL语句时,如果SQL语句中包含中文字符,可能会出现乱码问题,甚至导致错误。...中文字符导致报错:SQL语句中的中文字符可能导致SQL*Plus抛出错误,这会妨碍SQL语句的执行。 这些问题通常是由于SQL*Plus的字符编码设置不正确所导致的。...结语 通过正确设置NLS_LANG环境变量或SQLPlus的字符集设置,您可以解决在Oracle SQLPlus中执行SQL语句时出现中文乱码和报错的问题。...请根据您的具体需求和数据库配置选择适当的设置。希望本文能够帮助您顺利处理Oracle数据库中的中文字符。

    1.8K10

    python基础教程:Python 基本语法

    多行注释使用三个单引号(''')或三个双引号(""")引起来,多用于docstring(对模块、类、和函数进行说明) # 这是注释 print('hi, 吃了啊') # 这也是注释 def myadd...(Identifiers) 标识符,也就是名称,即变量名、函数名、类名。...Python2只支持ASCII码作为标识符的字符集, 而Python 3 扩展了标识符字符集,我们可以在程序中起中文名字,但是打中文会累死人的哦。...def 加法(加数, 被加数): return 加数 + 被加数 计算机 = 1 编程 = 2 print(加法(计算机, 编程)) 保留关键字 虽然Python程序中可以使用那么多的字符,...但是它也保留了一些字(如下表所示)作为语言本身的关键字,你给你的变量、函数、类起名字的时候不能使用这些关键字: False await else import pass

    68231

    Whosbug 2022项目日志

    ,一个是基于项目语法树的完整版本,一个是基于定义链的版本(在无完整语法树支持的语言中使用);我们结合语法解析插件现有能力和其它辅助信息对定义链算法进行了一定的优化,当前基于定义链的责任人归属算法如下:主要思路首先计算崩溃堆栈中每个函数的置信度再计算每个函数对本次错误的贡献程度最后计算责任人权重...,最终返回一个主要责任人可以根据需要返回可能出错的函数集及其对应的责任人,灵活选择即可函数的全局唯一标识符为了定位函数的位置,我们需要赋予每个函数一个全局的唯一标识符,这样即便是C++的重载函数也可以区分路径...,如果在函数内部定义的“子函数”越多、深度越深,可以认为函数的逻辑复杂度越多,理解起来越困难,那么自然出错的概率也就高图片有了函数的规模容错率以及信息熵,我们就可以计算函数的置信度,如果在本次commit...中该函数发生变更则采用上方公式重新计算,如果没有发生变更则采用下方的公式适当增加置信度图片错误贡献度虽然有了函数的置信度,但是并不能直接的判断是否该函数导致本次错误的发生,所以我们还需要根据报错堆栈的信息来计算每个函数对本次错误的贡献程度导致错误的函数出现在报错堆栈中的频率更高导致错误的函数与直接错误函数...(栈顶)的距离越近图片责任人权重对于每个函数,我们可以根据历史修改记录来计算每个责任人的权重一般来说,错误往往由于近期的commit中的函数变更导致的,因此越近的commit的作者的权重会越高图片

    44971
    领券