oracle学习笔记

合集下载

2021学年Oracle深度学习笔记ORACLE审计

2021学年Oracle深度学习笔记ORACLE审计

27.Oracle深度学习笔记——ORACLE审计审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system 表空间中的SYS.AUD$表中不管是否打开数据库的审计功能,用管理员权限连接Instance;启动数据库;关闭数据库都会被记录。

1.相关参数:audit_sys_operations12C默认TRUE当设置为true时,所有sys用户(包括以sysdba,sysoper身份登录的用户)的操作都会被记录,audit trail不会写在aud$表中,这个很好理解,如果数据库还未启动aud$不可用,那么像conn /as sysdba这样的连接信息,只能记录在其它地方。

如果是windows平台,audti trail会记录在windows的事件管理中,如果是linux/unix平台则会记录在audit_file_dest参数指定的文件中。

audit_trail12C默认DBDB:将audit trail 记录在数据库的审计相关表中,如aud$,审计的结果只有连接信息;DB,Extended:这样审计结果里面除了连接信息还包含了当时执行的具体语句;OS:将audit trail 记录在操作系统文件中,文件名由audit_file_dest参数指定;None:不做审计;2.审计级别开启审计功能后,可在三个级别对数据库进行审计:Statement(语句)、Privilege(权限)、object(对象)。

Statement按语句审计,如audit table 会审计数据库中所有的create table,drop table,truncate table语句Privilege按权限来审计,当用户使用了该权限则被审计,如执行grant select any table to a,当执行了audit select any table语句后,当用户 a 访问了用户b的表时(如select * fromb.t)会用到select any table权限,故会被审计。

Oracle学习笔记:wm_concat函数合并字段

Oracle学习笔记:wm_concat函数合并字段

Oracle学习笔记:wm_concat函数合并字段 在Oracle中使⽤wm_concat(column)可以实现字段的分组合并,逗号分隔。

例如,现有表temp_cwh_test:-- 创建临时表create table temp_cwh_test(u_id varchar(10),goods varchar(32),num number(5))-- 插⼊数据insert into temp_cwh_test(u_id, goods, num)values('1','苹果',2);insert into temp_cwh_test(u_id, goods, num)values('2','梨⼦',5);insert into temp_cwh_test(u_id, goods, num)values('1','西⽠',4);insert into temp_cwh_test(u_id, goods, num)values('3','葡萄',1);insert into temp_cwh_test(u_id, goods, num)values('3','⾹蕉',1);insert into temp_cwh_test(u_id, goods, num)values('1','橘⼦',3);-- 查看表select*from temp_cwh_test; 1.想按u_id分组,进⾏goods合并-- 使⽤wm_concat函数实现字段合并select u_id,wm_concat(goods) goods_sumfrom temp_cwh_testgroup by u_id; 得到: 2.想按u_id分组,进⾏goods和num合并select u_id,wm_concat(goods ||'('|| num ||'⽄)') goods_sumfrom temp_cwh_testgroup by u_id; 得到: 3.以“|”进⾏分隔合并select u_id, replace(wm_concat(goods),',','|') as goods_sumfrom temp_cwh_testgroup by u_id 得到: 4.其他 Oracle 11g后,推荐使⽤listagg函数。

Oracle数据库学习笔记_Oracle添加主键primarykey的四种方法

Oracle数据库学习笔记_Oracle添加主键primarykey的四种方法

Oracle数据库学习笔记_Oracle添加主键primarykey的四种⽅法创建主键oracle主键添加语句通常紧跟在建表语句之后,也可以直接嵌在列声明⾥创建,oracle创建主键时会⾃动在该列上创建索引。

常见⽅法⼤概有以下5种:⽅法⼀、使⽤add constraint ⽅法添加主键约束alter table 表名 add constraint 主键名 primary key (列名1,列名2,...)⽅法⼆、使⽤索引创建主键(和⽅法⼀没有区别,可以将⽅法⼀理解为省略了using index)alter table 表名 add constraint 主键名 primary key (列名1,列名2,...)using index [index_name];当省略using index后⾯的index_name时,创建主键的同时创建同名索引;当使⽤已有索引index_name创建主键时,注意索引列和主键列应该相同才能创建成功。

⽅法三、直接添加主键alter table 表名 add primary key (列名1,列名2,...) ;同样,创建主键的同时创建同名索引。

⽅法四、参数列内添加主键create table ALERT_RESULT_EVENT_C(data_date VARCHAR2(8) not null,object_id VARCHAR2(600) not null,event_id VARCHAR2(20) not null,ratio NUMBER(22,4),pairing_object_id VARCHAR2(128),index_value_1 VARCHAR2(128),index_value_2 VARCHAR2(128),constraint PK_ALERT_RESULT_EVENT_C primary key (DATA_DATE, OBJECT_ID, EVENT_ID));删除主键alter table 表名 drop primary key ;采⽤该语句删除主键时,同名索引也会被删掉。

精通 oracle 10g plsql 编程-学习笔记

精通 oracle 10g plsql 编程-学习笔记

1.PL/SQL综述本章学习目标,了解如下内容:PL/SQL的功能和作用PL/SQL 的优点和特征;Oracle 10g、Oracle9i 的PL/SQL新特征1.1.SQL简介1.1.1.SQL语言特点SQL语言采用集合操作方式1.1.2.SQL语言分类●数据查询语言(SELECT语句):检索数据库数据。

●数据操纵语言(DML):用于改变数据库数据。

包括insert,update和delete三条语句。

●事务控制语言(TCL):用于维护数据库的一致性,包括commit,rollback和savepoint 三条语句●数据定义语言(DDL):用户建立、修改和删除数据库对象。

●数据控制语言(DDL):用于执行权限授予和收回操作。

包括grant 和revoke两条命令。

1.1.3.SQL 语句编写规则●SQL关键字不区分大小写●对象名和列名不区分大小写●字符值和日期值区分大小写●书写格式随意1.2.PL/SQL简介1.3.Oracle 10G PL/SQL 新特征2.PL/SQL开发工具本章学习目标:学会使用SQL*PLUS学会使用PL/SQL developer;学会使用Procedure Builder。

2.1.SQL*PLUS在命令行运行SQL*PlusSqlplus [username]/[password] [@server]3.PL/SQL 基础学习目标:●了解PL/SQL块的基本结构以及PL/SQL块的分类;●学会在PL/SQL块中定义和使用变量●学会在PL/SQL块中编写可执行语句;●了解编写PL/SQL代码的指导方针;●了解Oracle 10g的新特征——新数据类型BINARY_FLOAT 和BINARY_DOUBLE,以及指定字符串文本的新方法。

3.1.PL/SQL 块简介3.1.1.PL/SQL块结构3.1.2.PL/SQL 块分类匿名块命名块子程序触发器3.2. 定义并使用变量3.2.1.标量变量3.2.2.复合变量3.2.3.参照变量3.2.4.LOB 变量3.2.5.非PL/SQL 变量3.3.编写 PL/SQL 代码3.3.1.PL/SQL 词汇单元分隔符标识符文本(数字文本,字符文本,字符串文本,布尔文本,日期时间文本)注释3.3.2.PL/SQL 代码编码规则标识符命名规则大小写规则代码缩进嵌套块和变量范围PL/SQL中可以使用的SQL函数4.使用SQL语句学习目标:学会使用SELECT语句去完成基本查询功能学会使用INSERT,UPDA TE和DELETE语句去操作数据库数据学会使用COMMIT,ROLLBACK和SA VEPOINT语句去控制事务学会使用SELECT语句去实现各种复杂查询功能(数据分组、连接查询、子查询、层次查询、合并查询等)4.1.使用基本查询处理NULL:函数nvl(expr1,expr2),nvl2(expr1,expr2,expr3)4.2.使用DML语句使用多表插入数据语法:INSERT ALL insert_into_clause [value_clause] subquery;INSERT conditional_insert_clause subquery;示例1:使用ALL 操作符执行多表插入INSERT ALLWHEN deptno=10 THEN INTO dept10WHEN deptno=20 THEN INTO dept20WHEN deptno=30 THEN INTO dept30WHEN job=’CLERK’ THEN INTO clerkELSE INTO otherSelect * from emp;示例2:使用FIRST 操作符执行多表插入INSERT FIRSTWHEN deptno=10 THEN INTO dept10WHEN deptno=20 THEN INTO dept20WHEN deptno=30 THEN INTO dept30WHEN job=’CLERK’ THEN INTO clerkELSE INTO otherSELECT * FROM emp;4.3.使用事务控制语句4.3.1.事务和锁4.3.2.提交事务4.3.3.回退事务设置保存点:savepoint a;或者exec dbms_transaction.savepoint(‘a’)取消部分事务Rollback to a;或者Exec dbms_transaction.rollback_savepoint(‘a’)取消全部事务:Rollback; 或者exec dbms_transaction.rollback() 4.3.4.只读事务4.3.5.顺序事务4.4.数据分组4.4.1.分组函数MaxMinAvgSumCountVarianceStddev使用分组函数注意事项:●当使用分组函数时,除了函数Count(*) 之外,其他分组函数都会忽略NULL行。

Oracle数据库学习笔记_CREATETABLE和INSERTINTO的高级用法

Oracle数据库学习笔记_CREATETABLE和INSERTINTO的高级用法
请尝试更换浏览器或网络环境
Oracle数据库学习笔记 _CREATETABLE和 INSERTINTO的高级用 法
1、新建表 create table ACCT_LOAN (
data_date INTEGER not null, --整数,也可以约束数字最大位数,不可为空 acct_num VARCHAR2(35) not null, --可变长度的字符串(包含数字。字母及特殊字符) curr_cd CHAR(3), --固定长度为3的字符串(可包含数字,字母及特殊字符) drawdown_dt DATE, --日期 loan_amt decimal(8,2) --小数,小数最大长度为8位,小数位固定为2位 ) 2、建备份表 create table 备份表名 as select * from 表名; 3、将两张相同结构的表合并在一起 insert into 表1 select * from 表2 where ...; commit; 4、更新表:merge into merge into 表1 using 表2 on (表1.字段=表2.字段) when matched then update set ... when not matched then insert values(表2.xx, 表2.xx,...); commit; 5、给变量赋值 select into 变量名 from

【Oracle学习笔记】定时任务(dbms_job)

【Oracle学习笔记】定时任务(dbms_job)

【Oracle学习笔记】定时任务(dbms_job)⼀、概述Oralce中的任务有2种:Job和Dbms_job,两者的区别有:1. jobs是oracle数据库的对象, dbms_jobs只是jobs对象的⼀个实例,就像对于tables, emp和dept都是表的实例。

2.创建⽅式也有差异,Job是通过调⽤dbms_scheduler.create_job包创建的,Dbms_job则是通过调⽤dbms_job.submit包创建的。

3.两种任务的查询视图都分为dba和普通⽤户的,Job对应的查询视图是dba_scheduler_jobs和user_scheduler_jobs,dbms_jobs对应的查询视图为dba_jobs和user_jobs。

这⾥主要是介绍Dbms_job。

⼆、使⽤1、创建job:1BEGIN2 DBMS_JOB.SUBMIT(3 JOB OUT BINARY_INTERGER,--输出变量,是此任务在任务队列中的编号,也可以⾃定义,⼀般不传4 WHAT IN VARCHAR2,--执⾏的任务的名称及其输⼊参数5 NEXT_DATE IN DATE DEFAULT SYSDATE,--任务执⾏的时间6 INTERVAL IN VARCHAR2DEFAULT NULL,--任务执⾏的时间间隔7 NO_PARSE IN BOOLEAN DEFAULT FALSE,--⽤于指定是否需要解析与作业相关的过程8 INSTANCE IN BINARY_INTEGER DEFAULT ANY_INSTANCE,--⽤于指定哪个例程可以运⾏作业9 FORCE IN BOOLEAN DEFAULT FALSE--⽤于指定是否强制运⾏与作业相关的例程10 );11END新⼿可以使⽤窗⼝创建:2、删除job: dbms_job.remove(jobno); -- jobno任务号3、修改要执⾏的操作: job:dbms_job.what(jobno, what); --指定任务号以及存储过程4、修改下次执⾏时间:dbms_job.next_date(jobno, next_date); --指定任务号的时间5、修改间隔时间:dbms_job.interval(jobno, interval); --指定任务号的间隔时间6、改变与作业相关的所有信息,包括作业操作,作业运⾏⽇期以及运⾏时间间隔等.1 dbms_job.change(2 job in binary_integer,3 what in varchar2,4 next_date in date,5 interval in varchar2,6 instance in binary_integer default null,7 force in boolean default false8 );例⼦:dbms_job.change(2,null,null,'sysdate+2');6、启动job: dbms_job.run(jobno); --指定任务号启动7、停⽌job: dbms.broken(jobno, broken, nextdate); –broken为boolean值 N代表启动,Y代表没启动(STOP)三、Interval 说明间隔/interval是指上⼀次执⾏结束到下⼀次开始执⾏的时间间隔,当interval设置为null时,该job执⾏结束后,就被从队列中删除。

Oracle EBSGL学习笔记

Oracle EBSGL学习笔记

12.81、冲销日记账1)原始借:租金10,000 本位币美元贷:现金10,000 本位币美元冲销借:现金10,000 本位币美元贷:租金10,000 本位币美元2)可以创建冲销日记账分录来冲销应计、估计、临时调整和重新分类,或更正错误。

3)方法:转换借贷项:通过转换借项和贷项金额来冲销日记账分录。

红字冲销:通过将原始日记账金额从正值改为负值来冲销日记账分录。

4)日记账> 输入> 复核日记账(B)其他活动日记账> 生成> 冲销2、自动冲销日记账1)可以自动冲销上一个月的应计日记账分录,并自动将其过账(如果需要)。

2)自动冲销日记账的前提条件:--日记账余额类型为“实际”--日记账类型已启用“自动冲销”选项--日记账已过帐,但尚未冲销--日记账冲销期间为“打开”或“将来可输入”3) 设置> 日记账> 自动冲销(AutoReverse)3、日记账分录报表提供:会计结算日期、类别、日记账名称、参考、日记账批4、与Oracle General Ledger 集成--在Excel中创建日记账--通过Web ADI 加载到GL_INTERFACE 表--从接口表中提交“日记账导入”-从Web ADI中与加载流程同时提交-从Web ADI 中作为独立的提交流程提交-从Oracle General Ledger中使用“导入日记账”窗口提交5、Web ADI 的核心功能1)布局功能--从布局中删除或向布局中添加字段--指定字段在布局中的位置--为布局中的字段分配默认值--保存布局,可以由具有适当责任的某个人来定义,然后由整个站点使用2) 文本导入功能--将文本文件数据导入到桌面文档中--创建可以修改和重复使用的映射模板,根据需要更改数据临时的移动目标。

3) 安全功能--将Web ADI 功能与菜单关联,创建用作安全配置文件的自定义访问点--将菜单附加到分配给用户的职责中,用用户级别限制Web ADI访问--为自助连接添加默认参数:强制用户在其桌面上生成文档时使用预定义的参数--将表单功能与用户的菜单关联,已授予其访问集成器的权限4) Internet 计算功能--集中部署,要操作词产品,客户机只需要浏览器和Excel--在Web 上运行6、通过Web ADI 进行桌面集成1) 集成器:Oracle General Ledger-日记账集成器、Oracle General Ledger-预算集成器、创建资产集成器、实地盘点集成器、HRMS集成器2)Oracle General Ledger-日记账集成器:--根据可定义的布局,自动生成基于电子表格的日记账分录工作表--允许通过复制和粘贴日记账行,然后进行增量式修改来快速的输入日记账--允许您定义可以反复修改和加载的日记账模板--使用安全措施和交叉验证规则以及其他引用字段全面验证账户--通过Oracle General Ledger开放接口将日记账加载到Oracle General Ledger7、导入日记账日记账> 导入> 运行1)将子分类帐和源系统数据导入Oracle General Ledger--定义分类账、币种、帐户、日记账来源和类别设置Oracle General Ledger,以接受日记账导入数据--运行“优化”程序,并定义并发程序控件。

韩顺平oracle学习笔记

韩顺平oracle学习笔记

韩顺平oracle学习笔记第0讲:如何学习oracle一、如何学习oracleOracle目前最流行的数据库之一,功能强大,性能卓越。

学习oracle需要具备一定基础:1.学习过一门编程语言(如:java ,c)2.最好学习过一门别的数据库(sql server,mysql , access)教程推荐:oracle使用教程,深入浅出oracle记住:欲速则不达,做任何事情要遵循他的规律,循序渐进,信心很重要成为一个oracle高手过程:理解小知识点->做小练习->把小的只是点连成线->做oracle项目->形成只是面->深刻理解Oracle基础部分:oracle基础使用; oracle用户管理; oracle表管理Oracle高级部分:oracle表的查询; oracle的函数; oracle数据库管理;oracle 的权角色; pl/sql 编程;索引,约束和事物。

期望目标:1 学会安装、启动、卸载oracle2 使用sql *plus工具3 掌握oracle用户管理4 学会在oracle中编写简单的select语句第1讲:基础语法内容介绍:1.为什么学习oracle2.介绍oracle及其公司的背景3.学会安装、启动、卸载oracle4.oracle开发工具5.Sql*plus的常用命令6.oracle用户管理一、主流数据库包括:●微软:sql server 和 access●瑞典:mysql AB公司●IBM公司:DB2●美国sybase公司:sybase●IBM公司:infromix●美国oracle公司:oracle(目前最流行的之一)二、oracle安装,启动及卸载1.系统要求:操作系统最好为windows2000内存最好在256M以上硬盘空间需要2G以上2.oracle安装会自动的生成sys和system两个用户说明:○1Sys用户是超级用户,具有最高权限,具有sysdba角色,create database 的权限,默认密码是manager○2System 用户是管理操作员,权限也很大,具有sysoper角色,没有create database权限,默认密码是 change_on_install○3一般讲,对数据库维护,使用system用户登录就可以了3.启动oracle右键单击我的电脑->服务和应用程序:服务->启动OracleServiceMYORA1(MYORA1是安装oracle时起的名字各有不同)和OracleOracleHome90TNSLlistener4.卸载oracle1、先关掉oralce,net stop OracleServiceORCL(ORCL是我的实例名字,换成你的),或者去我的电脑服务中关闭2、开始->程序->Oracle - oracle的版本号,我的是10ghome->Oracle Installation Products->Universal Installer 卸载oracle3、进注册表,regedit,删除选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下所有的key。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

●PLSQL控制台输出语句SET serveroutput ON; --打开控制台输出服务dbms_output.put_line('values2='||var_val); --输出语句●PLSQL动态变量var_str := '&input';●创建表空间和用户--创建表空间CREATE TABLESPACE "BCPBS"LOGGINGDATAFILE'D:\app\E430\oradata\orcl\BCPBS_01.ora'SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED,'D:\app\E430\oradata\orcl\BCPBS_02.ora'SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITEDEXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;--建立用户CREATE USER "BCPBS" PROFILE "DEFAULT"IDENTIFIED BY "bcpbs123" DEFAULT TABLESPACE "BCPBS"TEMPORARY TABLESPACE "TEMP"ACCOUNT UNLOCK;GRANT "CONNECT" TO "BCPBS";GRANT "DBA" TO "BCPBS";GRANT "RESOURCE" TO "BCPBS";●删除表空间和用户drop user bcpbs cascade ;drop tablespace BCPBS including contents and datafiles cascade constraints ;●自定义函数CREATE OR REPLACEFUNCTION fun_level_value(level_value number)RETURN numberISreturn_value number:=null;BEGINCASE level_valueWHEN 0 THEN return_value:='0';WHEN 1 THEN return_value:='1';WHEN 2 THEN return_value:='2';WHEN 3 THEN return_value:='3';WHEN 6 THEN return_value:='8';ELSEdbms_output.put_line('函数fun_level_value:'||level_value||'入参无法匹配');END CASE;RETURN return_value;END fun_level_value;存储过程CREATE OR REPLACEPROCEDURE p_bctts_enterext_update(var_id in number,var_old_address varchar2,var_new_address varchar2,var_coperation varchar2,var_bj_manager varchar2,var_phonevarchar2,var_emailvarchar2,var_consigner varchar2,var_deputy varchar2,var_accredit_content varchar2,var_deputy_start_date date,var_deputy_end_date date) IS var_errormsg varchar2(4000);var_zyxt_enterprise_id varchar2(16);BEGINvar_errormsg := '';var_zyxt_enterprise_id := '';select zyxt_enterprise_idinto var_zyxt_enterprise_idfrom t_enterprise_infowhere id = var_id;update bctts.t_enterprise_infoset bctts.t_enterprise_info.old_address = var_old_address,bctts.t_enterprise_info.new_address = var_new_address,bctts.t_enterprise_info.coperation = var_coperation,bctts.t_enterprise_info.bj_manager = var_bj_manager,bctts.t_enterprise_info.phone = var_phone,bctts.t_enterprise_info.email = var_email,bctts.t_enterprise_info.consigner = var_consigner,bctts.t_enterprise_info.deputy = var_deputy,bctts.t_enterprise_info.accredit_content = var_accredit_content,bctts.t_enterprise_info.deputy_start_date = var_deputy_start_date,bctts.t_enterprise_info.deputy_end_date = var_deputy_end_date where enterprise_id = var_zyxt_enterprise_id;COMMIT;EXCEPTIONwhen others thenvar_errormsg := SUBSTR(SQLERRM, 1, 4000);INSERT INTO t_zyjcxxsync_error_info(f_tablename,t_tablename,op_type,primary_value,errormsg,operate_date,remark)VALUES('bcpbs.t_enterpriseextend_info','bctts.t_enterprise_info','update',var_id,var_errormsg,sysdate(),'p_bctts_enterext_update');ROLLBACK;RETURN;end;-------存储过程用于触发器是不能有commit和rollback行触发器CREATE OR REPLACETRIGGER "BCPBS".trg_bcpbs_agentBEFORE INSERT OR UPDATE ON t_agent_infoFOR EACH ROWDECLAREvar_errormsg varchar2(4000);var_zyxt_enterprise_id varchar2(32);var_result number(1);BEGIN--如果是备案数据,进行同步IF :_source = 0 THENvar_zyxt_enterprise_id := :new.zyxt_agent_id;--如果存在与专业系统不存在关联IDIF var_zyxt_enterprise_id is null THENselect count(*)into var_resultfrom BCTTS.t_agent_infowhere agent_name = :new.agent_name;--如果通过企业名称找到关联企业IF var_result = 1 THENselect AGENT_IDinto var_zyxt_enterprise_idfrom BCTTS.t_agent_infowhere agent_name = :new.agent_name;END IF;END IF;IF var_zyxt_enterprise_id is null THENinsert into BCTTS.t_agent_info(bctts.t_agent_info.agent_id,bctts.t_agent_info.agent_name,bctts.t_agent_info.corporation,bctts.t_agent_info.agent_level,bctts.t_agent_info.linkman,bctts.t_agent_info.link_phone,bctts.t_agent_info.status,bctts.t_agent__source)values(to_char(bctts.seq_t_agent_info.nextval),:new.agent_name,:new.representative_name,:new.qualifications_degree,:new.linkman,:new.linkman_phone,:new.status,:_source);select to_char(bctts.seq_t_agent_info.currval)into var_zyxt_enterprise_idfrom dual;:new.zyxt_agent_id := var_zyxt_enterprise_id;ELSEupdate BCTTS.t_agent_infoset bctts.t_agent_info.agent_name = :new.agent_name,bctts.t_agent_info.corporation = :new.representative_name,bctts.t_agent_info.agent_level = :new.qualifications_degree,bctts.t_agent_info.linkman = :new.linkman,bctts.t_agent_info.link_phone = :new.linkman_phone,bctts.t_agent_info.status = :new.status,bctts.t_agent__source = :_source where agent_id = var_zyxt_enterprise_id;:new.zyxt_agent_id := var_zyxt_enterprise_id;END IF;END IF;EXCEPTIONwhen others thenvar_errormsg := SUBSTR(SQLERRM, 1, 4000);INSERT INTO t_zyjcxxsync_error_info(f_tablename,t_tablename,op_type,primary_value,errormsg,operate_date,remark)VALUES('bcpbs.t_agent_info','bctts.t_agent_info','insert or update',:new.id,var_errormsg,sysdate(),'trg_bcpbs_agent');END;触发器开关alter trigger bcpbs.trg_agent_insert disable; --关闭触发器alter trigger bcpbs.trg_agent_insert enable; --打开触发器触发器操作其他用户表时的显示授权grant select on bctts.t_enterprise_info to bcpbs;grant update on bctts.t_enterprise_info to bcpbs;grant delete on bctts.t_enterprise_info to bcpbs;grant select on bctts.seq_t_enterprise_info to bcpbs;Case 语句的用法用法一:SELECTorganization_no,case enterprise_type1when 0 then '建设单位'when 1 then '施工单位'else '未登记企业'endFROM t_enterprise_info ;SELECT grade,COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男生,2位女生*/ELSE NULLEND) 男生数,COUNT (CASE WHEN sex = 2 THEN 1ELSE NULLEND) 女生数FROM students GROUP BY grade;用法三:SELECT T2.*, T1.*FROM T1, T2WHERE (CASE WHEN PARE_TYPE = 'A' ANDT1.SOME_TYPE LIKE 'NOTHING%'THEN 1WHEN PARE_TYPE != 'A' ANDT1.SOME_TYPE NOT LIKE 'NOTHING%'THEN 1ELSE 0END) = 1●字符串处理函数字符串截取:substr(organization_no, 1, 9) ----截取前9位字符字符串替换:replace(organize_no, '-', '')字符串拼接:concat('abc','123')----两个拼接wm_concat(organization_no)—拼接列1.LOWER(string)将输入的字符串转换成小写2.UPPER(string)将输入的字符串转换成大写3.INITCAP(string)将输入的字符串单词的首字母转换成大写。

相关文档
最新文档