ORACLE数据库开发基础第十章其它(3)

2019-01-12 15:09

从查询结果来看,李四的comm(奖金)没有值。当我们将sal+comm(工资+奖金)来列出结果时, 则看到下面的结果: 212

SQL> select ename,sal,comm,sal+comm from emp; ENAME SAL COMM SAL+COMM

------------ ---------- ---------- ---------- 赵元杰 9000 1000 10000 张三 8888 1200 10088 李四 7000

由于李四没有奖金(comm列值为空),所以“工资”加“奖金”也变为“空”了。 对于这样的情形,请你务必记住使用 NVL 函数来解决。NVL 函数的格式为: NVL ( value, substitute)

即value 为空时以substitute 代替,可以将上面语句改为下面语句就正确了: SQL> select ename,sal,comm,nvl(sal,0)+nvl(comm,0) from emp; ENAME SAL COMM NVL(SAL,0)+NVL(COMM,0)

------------ ---------- ---------- ---------------------- 赵元杰 9000 1000 10000 张三 8888 1200 10088 李四 7000 7000

10.1.11 使用 product_user_file 来限制用户使用产品

缺 省 情 况 下 , 该 表 在 oracle rdbms 中是不建立的, 需要时可以system 帐户下运 行...\\dbs\\pupbld.sql 即可建立该表,product_user_file 表的结构如下: product 产品名,sql*plus userid 被禁止的用户(大写)

attribute 被禁止的属性(具体命令) scope 用于非oracle 产品,用null 替换

numeric_value 用于非oracle 产品, 用null 替换 char_value 必需含'DISABLED'

date_value 用于非oracle 产品,用null 替换 long_value 用于非oracle 产品,用null 替换 例1:禁止scott 用户使用sql*plus ,则 insert into product_user_profile

(product,userid,attribute,scope,numeric_value, char_value,date_value,long_value) values

('SQL*PLUS','SCOTT','HOST',NULL,NULL,'DISABLE',NULL,NULL); 213

例2:重新让scott 用户使用sql*plus ,则 SQL>delete from product_user_profile Where userid='SCOTT' and attribute='HOST'; Attribute 可能的命令如下: COPY EDIT EXECUTE EXIT GET HOST QUIT

PASSWORD RUN SAVE SET SPOOL START ALTER ANALYZE AUDIT CONNECT CREATE DELETE DROP GRANT INSERT LOCK NOAUDIT RENAME REVOKE SELECT SET ROLE SET TRANSACTION TRUNCATE UPDATE

BEGIN DECLARE 10.2 常用技巧

下面给出开发人员在工作中经常遇到的问题的解决方法。这里的所有例子都经过作者的 214

精心调试通过。希望能对那些新手的读者有点帮助。 10.2.1 long 类型的查询

由于在 SQLPLUS 下的缓冲区有限,并且LONG 的缺省长度为80 个字符。所以要查询LONG 类型的字段时,需要设置 LONG 的值为一个合适的值。如: SQL>set long 3000 SQL>col text for a90

SQL>select text from user_source; 10.2.2 如何确定执行时间

在程序调试过程中,经常需要了解某个语句的执行时间。以选择较好的语句。用下面的设置 可以显示每个语句所用去的时间(毫秒,毫秒/1000=秒)。 SQL> set timing on

SQL> select count(*) from emp; COUNT(*) -------------- 14 real: 190 SQL>

实际需要 190/1000=0.19 秒 10.2.3 如何终止用户会话

有时由于系统资源紧张或需要进行系统的整理时,都希望将与系统处于连接的用户会 话进行终止。可以用下面命令分两步实现: 1)先查询出所有用户的信息:

SQL> select sid,serial#,username,terminal from v$session; SID SERIAL# USERNAME TERMINAL

--------- --------- ------------------------------ ---------------- 1 1 ZHAOYUANJIE 2 1 ZHAOYUANJIE 3 1 ZHAOYUANJIE 4 1 ZHAOYUANJIE 5 1 ZHAOYUANJIE 215

6 1 ZHAOYUANJIE 7 505 8 505

11 370 SYS ZHAOYUANJIE 9 rows selected. real: 190 SQL>

2)用ALTER system kill session ‘sid,serial#’ ; 来终止: SQL>Alter system kill session ’11,370’;

如果希望一次终止多个会话,可以采用变量的方式更为快捷,如: SQL> select sid,serial#,username,terminal from v$session; SID SERIAL# USERNAME TERMINAL


ORACLE数据库开发基础第十章其它(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高预应力文件

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: