ORACLE笔记
- 格式:docx
- 大小:29.12 KB
- 文档页数:17
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函数。
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学习笔记第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。
安装oracle11.2.0.3一、环境准备1.以root用户登陆虚拟机:点击菜单栏上“设备—安装增强功能”打开文件夹后运行autorun.sh进行配置,重启点击菜单栏上“设备—分配光驱”选择安装介质DB_11.2.0.3_LINUX_X86-64正常:mount -o loop DB_11.2.0.3_LINUX_X86-64 /mnt2.创建组dba,oinstall[root@localhost ~]# groupadd -g 502dba[root@localhost ~]# groupadd -g 503 oinstall3.创建用户oracle[root@localhost ~]# useradd -g dba -G oinstall oracle[root@localhost ~]# passwd oracle如输入密码:oracle两次4.修改oracle用户环境变量用oracle身份登录,编辑该用户主目录下的.bash_profile文件。
在文件末尾增加以下格式内容。
export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2.3/db_1export ORACLE_SID=oracleexport PATH=$ORACLE_HOME/bin:$PATH修改后内容如下5.创建目录/u01/app/oracle[root@localhost /]# mkdir -p /u01/app/oracle[root@localhost /]# chmod -R 775 /u01/app[root@localhost /]# chown -R oracle:oinstall /u01/app[root@localhost /]#6.执行runInstaller登陆oracle用户,执行/media/20110930_135650/runInstaller会出现以下内容解决办法是:切换到root用户,执行xhost +命令然后再重新回到oracle用户执行/media/20110930_135650/runInstaller 结果如下二、安装oracle以启动OUI开始为第一步1.邮件地址或oracle支持设置。
韩顺平—玩转oracle视频教程笔记一:Oracle认证,与其它数据库比较,安装Oracle安装会自动的生成sys用户和system用户:(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install(2)system用户是管理操作员,权限也很大。
具有sysoper角色,没有create database的权限,默认的密码是manager(3)一般讲,对数据库维护,使用system用户登录就可以拉也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
二:Oracle的基本使用--基本命令sql*plus的常用命令连接命令1.conn[ect]用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper2.disc[onnect]说明: 该命令用来断开与当前数据库的连接3.psssw[ord]说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
4.show user说明: 显示当前用户名5.exit说明: 该命令会断开与数据库的连接,同时会退出sql*plus文件操作命令1.start和@说明: 运行sql脚本案例: sql>@ d:\a.sql或是sql>start d:\a.sql2.edit说明: 该命令可以编辑指定的sql脚本案例: sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开3.spool说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b.sql 并输入 sql>spool off交互式命令1.&说明:可以替代变量,而该变量在执行时,需要用户输入。
韩顺平老师 oracle教程笔记1.Oracle认证,与其它数据库比较,安装Oracle安装会自动的生成sys用户和system用户:(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install (2)system用户是管理操作员,权限也很大。
具有sysoper角色,没有create database的权限,默认的密码是manager (3)一般讲,对数据库维护,使用system用户登录就可以拉也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
2.Oracle的基本使用--基本命令sql*plus的常用命令连接命令1.conn[ect]用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper 2.disc[onnect]说明: 该命令用来断开与当前数据库的连接3.psssw[ord]说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
4.show user说明: 显示当前用户名5.exit说明: 该命令会断开与数据库的连接,同时会退出sql*plus文件操作命令1.start和@说明: 运行sql脚本案例: sql>@ d:\a.sql或是sql>start d:\a.sql2.edit说明: 该命令可以编辑指定的sql脚本案例: sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开3.spool说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b.sql 并输入 sql>spool off交互式命令1.&说明:可以替代变量,而该变量在执行时,需要用户输入。
Oracle学习笔记:判断表是否存在函数is_table_exists在 Oracle 中可以利⽤系统表 user_tables 和 all_talbes 判断表是否存在,但有时在存储过程中确认表是否存在并不⽅便,因此有必要封装⼀个函数,进⾏调⽤。
下⾯是函数的内容:-- 判断表是否存在create or replace function temp_is_table_exists(is_table_name varchar2, is_owner_name varchar2 default null)return boolean isvcproc_name varchar2(100) := 'TEMP_IS_TABLE_EXISTS';vncount number(10);vnerr_code number;vcerr_text varchar2(2000);vcowner_name varchar2(1000);vctable_name varchar2(1000);beginvncount := 0;vcowner_name := is_owner_name;vctable_name := is_table_name;if vcowner_name is null thenselect count(1) into vncountfrom user_tableswhere table_name = upper(vctable_name);elseselect count(1) into vncountfrom all_tableswhere owner = upper(vcowner_name)and table_name = upper(vctable_name);end if;if vncount > 0 thenreturn true;elsereturn false;end if;exceptionwhen others thenvnerr_code := sqlcode;vcerr_text := sqlerrm;-- 记录异常以备查pro_cwh_test(vcproc_name, vctable_name, vnerr_code, vcerr_text);rollback;commit;end temp_is_table_exists;其中,⼊参为:表名 + ⽤户名,⽤户名可缺省。
MLDN魔乐科技_Oracle课堂笔记1.sqlplusw命令(窗口形式),sqlplusw不支持编辑,一般在编辑器(记事本)中编辑好了后拷贝进去执行,或用ed命令;2.descdesc [tablename];查看表结构3.show user查看当前用户4.select table_name from tabs显示当前用户下的表名;5.set linesizeset linesize [number];6.set pagesizeset pagesize [number];7.eded命令用来从sqlplusw中打开编辑器来编辑文件(文本文件);8.@执行sql文件@D:\a.txt;@d:\a;(a文件的扩展名为.sql)9.connconn username/pwd@实例名;10.sql标准,其功能:DML(数据操作语言),DDL(数据定义语言),DCL(数据控制语言)11.别名Oracle中指定列别名;(不要指定为中文);12.distinct去除重复记录;13.||字符串连接符;select "我的名字是:" || name from t_user;14.NOT NULL/IS NULL选择列值不为空的记录where collumname IS NOT NULL;相反IS NULL;15.BETWEEN…AND…WHERE COLUMENAME BETWEEN...AND...; 等价于>=,<=,如果是在时间之前,则需将时间''起来;16.大小写oracle中查询值是大小写区分的,但关键字不区分;17.InFieldName in (值1,值2,值3,...值n);NOT IN;18.Like在使用Like时常用的通配符:%,匹配任意长度内容,_,匹配一个长度内容;例:select * from emp where ENAME Like '_M%';表示第二个字母为M的名字.19.>,<,>=,<=,<>,!=用法20.order byOrder by语句,放在SQL语句最后;desc(从大到小)/asc(从小到大)(默认)21.单行函数字符/数值/日期/转换/通用函数;(1).字符:UPPER()变大写,LOWER()变小写,INITCAP()将单词第一个字母大写;字符长度LENGTH(),字符串截取SUBSTR(),字符串替换REPLACE()其中substr()的第二个参数即起始位置索引为0或1效果都是从第一个字符开始,负数是从右边开始;(2).数值:四舍五入ROUND(),截取TRUNC(),求模MOD();ROUND(23.45,2),TRUNC(23.45,-1),MOD(10,3);(3).日期:MONTHS_BETWEEN(),两个日期之间的月数;MONTHS_BETWEEN(DA TE1,DA TE2)ADD_MONTHS(),下月的今天;NEXT_DA Y(),下一个的今天日期;LAST_DAY(), 给定日期的最后一天日期;(4).转换:TO_CHAR(),TO_NUMBER(),TO_DA TE();fm去除前导0,例如:to_char(sysdate,'fmyyyy-mm-dd') 得出结果2009-1-2(本应为2009-01-02).千位分隔符(格式字符用9表示),货币前缀($美元,L本地币种)to_char(123456,'$99,999')美元to_char(123456,'L99,999')本地币种(5).通用:如果有NULL类型数据参与运算,必需用NVL()转换成特定值再计算;如:NVL(filed1,'0')DECODE()函数,用于替换;DECODE(field/expression,1,"one",2,"two")表示如果field/expression如果是1的话,则替换为one,是2的话替换为two;22.ORACLE用户(1)超级管理员:sys/change_on_install;(2)管理员:system/manager;(3)普通用户:scott/tiger;23.左、右(外)连接默认左连接where a.field1(+) = b.field2"+"在左边表示右连接,在右边表示左连接cross join产生笛卡尔积;标准语法:select table1.*,table2.* from table1,table2 where table1.no=table2.no;24.sql1999select table1.*,table2.* from table1[cross join table2][natural join table2][join table2 using collumname][left|right|full outer join table2]on table1.collum1 = table2.collum2where 1=1group by 分组条件having 分组条件order by...注:where子句中不能带组函数;25.组函数(1).count();(2).max();(3).min();(4).sum();(5).avg();26.分组统计group by27.子查询示例:select * from emp where sal > (select sal from emp where empno = 7654)使用分类:单列(用得最多),单行,多行;子查询的三种操作:(1) in 在结果集之中;(2) any=any即=,>any 比最小值的要大的结果集,<any比值最大的要小的结果集;(3) all>all,比最大的值要大,<all,比最小的值要小;格式:where field1 > all(子查询)28.事务一个窗口一个会话,如没有提交互不影响;commit;提交;rollback;回滚;死锁,等待,一个session没有提交,其它session不能处理,要等待前一个session提交了再进行处理;29.子查询、外连接练习select e.job,count(e.empno)from emp e right outer join (select job from emp group by job having min(sal) > 1500) emon e.job = em.jobgroup by e.job;select e.job,count(e.empno)from emp e ,(select job from emp group by job having min(sal) > 1500) emwhere e.job(+) = em.jobgroup by e.job;select e.job,count(e.empno)from emp ewhere e.job in (select job from emp group by job having min(sal) > 1500)group by e.job;29.表的建立与删除Oracle中的主要数据类型;varchar,varchar2为255字符;number(m,n),---float,number(n)----intdateclob,blog 4G(1)复制表create table tablename as select * from emp;(2)复制表结构(加永不成立的where条件)create table tablename as select * from emp where 1==2;(3)创建表create table tablename (字段1 类型1 default '默认值',字段2 类型2,...字段n 类型n)(4)修改表删除表: drop table tablename;增加列:alter table tablename add(columnname 类型default '默认值',columnname 类型default '默认值')修改列:alter table tablename modify(columnname 类型default '默认值')修改列名:alter table rename column columnname to newcolumnname重命名表:rename tablename1 to tablename2;只能用于oracle截断表:truncate table tablename;与delete类似,但直接释放,不能回滚;30.约束的分类与使用作用:保证数据库中数据的完整性;分类:主键(PRIMARY KEY),唯一(UNIQUE),检查(CHECK),非空(NOT NULL),外键约束(FOREIGN KEY);其中,前四种约束为单表约束,外键约束为多表约束;通过constraint指定约束:constraint person_pid_pk PRIMARY KEY(pid)constraint person_sex_ck CHECK(sex in ('男','女'))外键:强制删除父表:一般是先删除子表,再删除父表,但技术上可以实现强制先删除父表(同时删除从表相关约束):DROP TABLE tablename CASCADE CONSTRAINT;(一般不使用)强制删除从表数据:删除父表数据时,从表相应有约束的记录也删除, 需在创建表约束时这样处理:CONSTRAINT person_book_pid_fk FOREIGN KEY(pid) REFERENCES persion(pid) ON DELETE CASCADE示例:CREA TE TABLE T_PARENT(ID NUMBER(10) PRIMARY KEY NOT NULL,NAME V ARCHAR2(10));CREA TE TABLE T_CHIRLD(ID NUMBER(10) PRIMARY KEY NOT NULL,NAME V ARCHAR2(10),PARENT_ID NUMBER(10),CONSTRAINT CHIRLD_PARENT_FK FOREIGN KEY(PARENT_ID) REFERENCES T_PARENT ON DELETE CASCADE);增加约束:ALTER TABLE tablename ADD CONSTRAINT 约束名PRIMARY KEY(pid);示例:alter table T_CHIRLDadd constraint CHIRLD_PARENT_FK foreign key (PARENT_ID)references T_PARENT (ID) on delete cascade;修改约束:ALTER TABLE tablename MODIFY CONSTRAINT 约束名PRIMARY KEY(pid);字段名_PK,字段名_UK,字段名_CK,字段名_NK,从表字段名_父表字段名_FK删除约束:ALTER TABLE tablename DROP CONSTRAINT 约束名;31.表的关联查询:并(UNION),交(INTERSECT),差(MINUS)UNION:将多个查询的结果组合到一个查询结果中,没有重复;UNION ALL:将多个查询的结果组合到一个查询结果中,可以有重复;INTERSECT:返回两个结果集的公共部分;MINUS:返回两个结果集的差值;(左边表减右边表)示例:select * from emp UNION select * from emp2;32.ROWNUM伪列的作用自动编号,存在于每一个查询中,使用情境:只想显示前五条记录,则只需加条件:ROWNUM <= 5;常用于分页操作如果想取得中间记录的数据,不能用ROWNUM(BETWEEN AND),只能用子查询:例:查出第五条到第十条记录;SELECT * FROM (SELECT ROWNUM rn,empno,ename,job FROM emp WHERE ROWNUM<=10) tempWHERE temp.rn>=5;33.序列的使用用途:用于自动增长;创建序列:CREA TE SEQUENCE seqname[INCREMENT BY n][START WITH n] --START WITH默认从1开始;[{MAXV ALUE n|NOMAXV ALUE}][{MINV ALUE n|NOMINV ALUE}][{CYCLE|NOCYCEL}][{CACHE|NOCACHE}]示例:create sequence myseq;使用序列:insert into tablename (next,curr) values (myseq.nextval,myseq.currval);删除序列:DROP SEQUENCE seqname;34.视图创建语法:CREA TE OR REPLACE VIEW 视图名称AS 子查询其中子查询是一个复杂的select语句视图创建好后,可以作为一张表来查询使用;以上创建的视图可以执行UPDA TE,且可将原表进行修改;但实际应用用,视图是只读的,可以需要在创建视图的时候加上以下参数:WITH CHECK OPTION 不能更新视图条件字段,但能更新其它非条件字段;WITH READ ONLY表示只读,不能更新;删除语法:DROP VIEW 视图名称;35.同义词,用户管理,权限分配与撤销,数据库的备份同义词(只适用于oracle):作用:通过同义词可访问不同用户下的表,例如,scott用户可以访问sys用户下的dual表;创建同义词:CREA TE SYNONYM 同义词名称FOR 用户名.表名称;示例:create synonym emp for scott.emp;删除同义词:DROP SYNONYM 同义词名称;用户管理创建用户:CREA TE USER 用户名IDENTIFIED BY密码;为用户授权:GRANT 权限1,权限2,... TO 用户;示例将创建session的权限赋给testuser,以使得其可以连接到数据库:GRANT CREA TE SESSION TO testuser;赋予角色给用户testuser:GRANT CONNECT,RESOURCE TO testuser;修改用户密码:ALTER USER 用户名IDENTIFIED BY密码;使用户密码失效:ALTER USER 用户名PASSWORD EXPIRE;锁住用户:ALTER USER 用户名ACCOUNT LOCK;解锁用户:ALTER USER 用户名ACCOUNT UNLOCK;将某张表的读取,删除权限赋给用户testuser:GRANT SELECT,DELETE ON scott.emp TO testuser;回收权限:REVOKEREVOKE 权限ON 用户.表名称FROM 用户;示例:REVOKE SELECT,DELETE ON scott.emp FROM testuser;数据库的备份:导入导出命令EXP,IMP36.可变数组类似于嵌套表,一般开始过程中不用37.数据库设计范式第一范式:每一个字段不可再分;第二范式:实现多对多的关联;第三范式:实现一对多的关联;(用得最多90%以上的项目)注:以上三范式在设计数据库时仅作参考,数据库设计的维一原则是:表关联尽可能少,SQL 尽可能简单;37.嵌套表(ORACLE特有,使用复杂,一般实际开发中不使用)在一个表中还包含另一个子表; 先定义类型.。
ORACLE EBS 点滴积累➷AP 应付(以下笔记如无特别说明均是从R12 版本得出)1、判断AP 应付发票状态需要通过API 包ap_invoices_pkg,如验证通过APPROVED:、ap_invoices_pkg.get_approval_status(invoice_id,invoice_amou nt,payment_status_flag,invoice_type_lookup_code) =‘APPROVED’;2、R12 中ap.ap_accounting_events_all 表不再记录数据;ap.ap_ae_lines_all;ap.ap_ae_headers_all 也一样;3、AP 付款到AP 发票追溯:Ap.ap_checks_all 到ap.ap_invoice_payments_all 到ap.ap_invoices_all 到ap.ap_payment_schedules_all ;4、AP 付款到AP 发票分录追溯:ap.ap_checks_all 到ap.ap_invoice_payments_all 到ap_payment_hist_dists 到ap.ap_invoice_distributions_all;5、AP 付款到AP 发票分录追溯2:ap.ap_checks_all 到ap.ap_payment_history_all 到ap_payment_hist_dists 到ap.ap_invoice_distributions_all;6、Ap.ap_checks_all:一次付款对应一条记录,记录金额,当void 时记录void 时间;7、Ap.ap_invoice_payments_all:AP 应付发票每被付款核销一次则产生一条记录,从付款角度看付款核销多少个发票则此表中产生多少条记录(即被核销的发票都会产生一条记录);当付款被VOID 时也会产生一条新的记录;此表记录付款金额、GL DATE、会计期、是否过账、账套、应付账款科目、汇率、折损(汇差)科目;8、Ap.ap_payment_schedules_all:该表一张AP 应付发票对应一条或多条记录(根据付款条件而定,一次到期对应一条记录),记录了剩余金额amount_remaining、发票原始金额gross_amount、付款状态payment_status_flag(N 从未付款、Y 全部付款、P 部分付款);9、Ap.ap_payment_history_all:一次付款对应多个transaction type 记录,如创建、取消(取消时取消的记录上会记录被取消的ID);该表记录付款金额、GL DATE、是否过账;10、Ap.ap_invoices_all 该表上有记录发票金额、付款金额、付款状态、账套;11、Ap.ap_payment_hist_dists:只有付款在创建会计分录时才会产生此表中的记录,记录某个付款上多次事务产生出的分录并对应多个AP 发票分配行的情况,且会记录付款与AP 发票➷间的折损差异(汇差);12、AP 付款必须录入付款发票后才可保存;13、付款方式为check 的付款,状态(status_lookup_code)固定为negotiable(兑现);14、票据(wire):开出支票给供应商,到期后供应商可以到银行进行票据兑现。
本文由我司收集整编,推荐下载,如有疑问,请与我司联系oracle权限和同义词笔记2012/09/25 4671 1.查看当前用户所拥有的系统权限 select * from session_privs; 2.查看数据库内的所有角色select * from dba_roles; 4.查看当前用户所拥有的角色select * from session_roles; 5.查看角色的嵌套关系和所授予的用户select * from dba_role_privs order by 1; 6.其他查看角色和权限的命令select * from role_sys_privs; select * from dba_sys_privs; 7.表级对象权限select * from user_tab_privs_made; select * from user_tab_privs_recd; 8.列上的对象权限select * from user_col_privs_made; select * from user_col_privs_recd; 9.比较connect和resoucr角色的权限差别select grantee,privilege from dba_sys_privs where grantee=‘RESOURCE’ OR GRANTEE LIKE ‘CONNECT’ 10.查看oracle的版本select version from v$instance; select * from role_role_privs where role=‘CONNECT’ CONNECT角色在10g以后就只有create session的权限了,以前其他版本的权限都被取消了。
当RESOURCE角色被授予一个用户后,该用户自动拥有了unlimited tablespace的系统权限。
select * from role_role_privs select * from role_sys_privs; select * from role_tab_privs; select * from role_wm_privs; 查看某个role赋给了哪些user或role:select * from DBA_ROLE_PRIVS where GRANTee=‘ifm30’; select * from dba_users; grant RESOURCE to TYF with admin option commit 创建同义词:create public synonym table_name for user.table_name;2.删除同义词:drop public synonym table_name;3.查看所有同义词:select * from dba_synonyms Oracle同义词的作用1) 多用户协同开发中,可以屏蔽对象的名字及其持有者。
Oracle学习笔记系列(⼆)之数据库⽇期格式转换Oracle数据库⽇期格式转换select sysdate from dual;select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') as mydate from dual;select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as mydate from dual;select to_number(to_char(sysdate,'yyyymmddhh24miss')) as mydate from dual;转换函数与date操作关系最⼤的就是两个转换函数:to_date(),to_char() to_date():作⽤将字符类型按⼀定格式转化为⽇期类型。
具体⽤法:to_date('2004-11-27','yyyy-mm-dd'),前者为字符串,后者为转换⽇期格式。
【注意,前后两者要以⼀对应】如;to_date('2004-11-27 13:34:43', 'yyyy-mm-dd hh24:mi:ss')多种⽇期格式:YYYY:四位表⽰的年份 YYY,YY,Y:年份的最后三位、两位或⼀位,缺省为当前世纪 MM:01~12的⽉份编号 MONTH:九个字符表⽰的⽉份,右边⽤空格填补 MON:三位字符的⽉份缩写 WW:⼀年中的星期 D 的第⼏个⼩时,取值为00~23 MI:⼀⼩时中的分钟 SS:⼀分钟中的秒 SSSS:从午夜开始过去的秒数to_char():将⽇期转按⼀定格式换成字符类型即把当前时间按yyyy-mm-dd hh24:mi:ss格式转换成字符类型在oracle中处理⽇期⼤全 TO_DATE格式 Day:dd number 12dy abbreviated friday spelled out fridayddspth sp 12⼩时格式下时间范围为: 1:00:00 - 12:59:59 ....⽇期和时间函数汇总1.⽇期和字符转换函数⽤法(to_date,to_char)select to_char(to_date(222,'J'),'Jsp') from dual; --Two Hundred Twenty-Two2.求某天是星期⼏select to_char(to_date('2018-01-09','yyyy-mm-dd'),'day') from dual; --星期⼆select to_char(to_date('2018-01-09','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual; --tuesday设置⽇期语⾔ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';也可以这样 TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')3.两⽇期间的天数select floor(sysdate - to_date('19921123','yyyymmdd')) from dual; --91794. 时间为null的⽤法select p.claimno, p.endcasedate from prplclaim pUNIONselect '1', TO_DATE(null) from dual;注意要⽤TO_DATE(null)5.取⽇期范围a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')这样12⽉31号中午12点之后和12⽉1号的12点之前是不包含在这个范围之内的。
Oracle学习笔记:date和timestamp相互转换0.date 和 timestamp 说明date 类型能够存储年、⽉、⽇、世纪、时、分、秒,经常使⽤的格式为:MM/DD/YYYY HH24:MI:SS 或者 MM-DD-YYYY HH24:MI:SS 。
date 只能精确到秒,不能精确到秒之内的时间,⼀般的时间计算⾜够,但是在时间精度要求较⾼的场景下,date 类型就有点⼒不从⼼。
为了解决 date 类型粒度不够的问题,Oracle 扩展出了 timestamp 时间戳类型,timestamp 类型引⼊了⼩数秒的信息。
在 Oracle 中可以使⽤ sysdate 和 systimestamp 查询当前系统时间、时间戳。
select sysdate from dual; -- 1 2019/12/24 14:59:37select systimestamp from dual; -- 1 24-12⽉-19 03.00.29.523851 下午 +08:001.date 转换为 timestampdate 转换为 timestamp 格式可以使⽤函数 to_timestamp 进⾏转换。
select to_timestamp(sysdate) from dual;-- 1 24-12⽉-19 12.00.00 上午select to_timestamp('2019-12-24 14:57:10.1','yyyy-mm-dd hh24:mi:ss.ff') from dual;-- 1 24-12⽉-19 02.57.10.100000000 下午2.timestamp 转换为 datetimestamp + 0select systimestamp + 0 from dual;-- 1 2019/12/24 15:01:54to_char + to_date ⽅式select to_char(systimestamp, 'yyyymmdd') from dual;-- 1 20191224-- 多加⼀层 to_date 转化cast ⽅式select cast(systimestamp as date) from dual;-- 1 2019/12/24 15:03:33参考链接1:参考链接2:。
Oracle学习笔记系列(⼆)之数据库⽇期格式转换Oracle数据库⽇期格式转换select sysdate from dual;select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') as mydate from dual;select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as mydate from dual;select to_number(to_char(sysdate,'yyyymmddhh24miss')) as mydate from dual;转换函数与date操作关系最⼤的就是两个转换函数:to_date(),to_char() to_date():作⽤将字符类型按⼀定格式转化为⽇期类型。
具体⽤法:to_date('2004-11-27','yyyy-mm-dd'),前者为字符串,后者为转换⽇期格式。
【注意,前后两者要以⼀对应】如;to_date('2004-11-27 13:34:43', 'yyyy-mm-dd hh24:mi:ss')多种⽇期格式:YYYY:四位表⽰的年份 YYY,YY,Y:年份的最后三位、两位或⼀位,缺省为当前世纪 MM:01~12的⽉份编号 MONTH:九个字符表⽰的⽉份,右边⽤空格填补 MON:三位字符的⽉份缩写 WW:⼀年中的星期 D 的第⼏个⼩时,取值为00~23 MI:⼀⼩时中的分钟 SS:⼀分钟中的秒 SSSS:从午夜开始过去的秒数to_char():将⽇期转按⼀定格式换成字符类型即把当前时间按yyyy-mm-dd hh24:mi:ss格式转换成字符类型在oracle中处理⽇期⼤全 TO_DATE格式 Day:dd number 12dy abbreviated friday spelled out fridayddspth sp 12⼩时格式下时间范围为: 1:00:00 - 12:59:59 ....⽇期和时间函数汇总1.⽇期和字符转换函数⽤法(to_date,to_char)select to_char(to_date(222,'J'),'Jsp') from dual; --Two Hundred Twenty-Two2.求某天是星期⼏select to_char(to_date('2018-01-09','yyyy-mm-dd'),'day') from dual; --星期⼆select to_char(to_date('2018-01-09','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual; --tuesday设置⽇期语⾔ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';也可以这样 TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')3.两⽇期间的天数select floor(sysdate - to_date('19921123','yyyymmdd')) from dual; --91794. 时间为null的⽤法select p.claimno, p.endcasedate from prplclaim pUNIONselect '1', TO_DATE(null) from dual;注意要⽤TO_DATE(null)5.取⽇期范围a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')这样12⽉31号中午12点之后和12⽉1号的12点之前是不包含在这个范围之内的。
一、相关函数: Group by、Rollup、Cube、Grouping sets、Over、Grouping_id、Grouping、Decode、lag、lead、rank、dense_rank、row_number、count
二、初始化数据:
-- Create table create table EMPLOYEE ( EID NUMBER not null, ENAME VARCHAR2(20) not null, EADDRESS VARCHAR2(200) not null, E_DID NUMBER not null, HIRE_DATE DATE not null, SALARY NUMBER(8,2) not null, BONUS NUMBER(8,2), BOSS NUMBER ) tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64 minextents 1 maxextents unlimited ); -- Create/Recreate primary, unique and foreign key constraints alter table EMPLOYEE add primary key (EID) using index;
--insert content insert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS) values (1, '郭芙', '广东', 1, to_date('02-01-2006', 'dd-mm-yyyy'), 2000.5, 100.5, 10); insert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS) values (3, '杨康', '成都', 3, to_date('14-07-2004', 'dd-mm-yyyy'), 3000, null, 10); insert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS) values (9, '杨过', '广东', 1, to_date('02-03-2005', 'dd-mm-yyyy'), 2000, 1000, 10); insert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS) values (10, '小龙女', '广东', 2, to_date('05-04-2000', 'dd-mm-yyyy'), 8000, null, 10); insert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS) values (11, '郭襄', '广东', 3, to_date('01-12-2010', 'dd-mm-yyyy'), 5000, null, 10); insert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS) values (14, '郭靖', '成都', 2, to_date('08-07-2008', 'dd-mm-yyyy'), 4300, null, 14); insert into EMPLOYEE (EID, ENAME, EADDRESS, E_DID, HIRE_DATE, SALARY, BONUS, BOSS) values (15, '黄蓉', '成都', 3, to_date('13-05-2009', 'dd-mm-yyyy'), 1600, 200, 14); commit;
矿产资源开发利用方案编写内容要求及审查大纲
矿产资源开发利用方案编写内容要求及《矿产资源开发利用方案》审查大纲一、概述
㈠矿区位置、隶属关系和企业性质。
如为改扩建矿山, 应说明矿山现状、
特点及存在的主要问题。
㈡编制依据
(1简述项目前期工作进展情况及与有关方面对项目的意向性协议情况。
(2 列出开发利用方案编制所依据的主要基础性资料的名称。
如经储量管理部门认定的矿区地质勘探报告、选矿试验报告、加工利用试验报告、工程地质初评资料、矿区水文资料和供水资料等。
对改、扩建矿山应有生产实际资料, 如矿山总平面现状图、矿床开拓系统图、采场现状图和主要采选设备清单等。
二、矿产品需求现状和预测
㈠该矿产在国内需求情况和市场供应情况
1、矿产品现状及加工利用趋向。
2、国内近、远期的需求量及主要销向预测。
㈡产品价格分析
1、国内矿产品价格现状。
2、矿产品价格稳定性及变化趋势。
三、矿产资源概况
㈠矿区总体概况
1、矿区总体规划情况。
2、矿区矿产资源概况。
3、该设计与矿区总体开发的关系。
㈡该设计项目的资源概况
1、矿床地质及构造特征。
2、矿床开采技术条件及水文地质条件。
笔记:Oracle SQL 高级查询简介(1) case、层次化、扩展group by 2015/10/03 0 1. 集合操作 union all 、union、intersect 、minus 注意:集合操作的所有查询返回的列数、列类型必须相同,但是列名可以不一样。
2、translate 函数 translate(x, str1, str2) . 在字段x 中查找str1中的字符,转化为str2中对应的字符。
例子: select translate(x, abc , xyz ) from table1 对字段x中字符进行替换:a- x, b- y, x- z 3.DECODE() 函数 就是case 语句。
4、CASE 语句 搜索case表达式例子: select e.employee_id, case when e.salary =10000 then good when e.salary 5000 and e.salary 10000 then middle else poor end as salary_type from hr.employees e结果: EMPLOYEE_ID SALARY_TYPE----------- ----------- 100 good 101 good 102 good 103 middle 104 middle 105 poor 106 poor 107 poor 108 good 简单case表达式例子: select e.employee_id , case e.department_id when 90 then research when 60 then sales else unkown end as department from hr.employees e结果: EMPLOYEE_ID DEPARTMENT----------- ---------- 100 research 101 research 102 research 103 sales 104 sales 105 sales 106 sales 107 sales 108 unkown 5、层次化查询使用start with 和connect to privor select level , e.employee_id , e.manager_id, e.first_name|| || st_name as full_name from hr.employees e start with e.employee_id = 100 connect by prior e.employee_id =。
1.Oracle 工具:sqlplus Sqlplus / as sysdba Shutdown immediate(关闭数据库) Startup(启动数据库) 注意:数据库开启才可以进行操作 Select username,account_status from dba_users;(查询数据库中所有的用户名称与用户状态) Alter user scott identified by tiger account unlock;(scott用户解锁) Sqlplus scott/tiger(使用SCOTT 密码为tiger登陆ORACLE数据库) Connect scott/tiger (在SQL>中直接使用SCOTT用户连接数据库) Show all;(看所有变量) Set sqlprompt “_user>”(设置sqlplus环境下面的提示符用自身用户显示) 注意:如要变量下次重启生效必须把变量写入 /u01/app/oracle/product/10.2.0/db_1/sqlplus/admin/glogin.sql中 Host(回到系统) Help index(查看所有命令) Help+命令(类似于LINUX中的MAN,查看命令的格式与用法) Disconnect(关闭SQLPLUS工具但是不离开数据库) Describe emp(查看EMP表) Define(定义变量,常用与写脚本用) 如:DEFINE _EDITOR =”vi” (CHAR) (定义VI编辑器用于保存最后一条执行的SQL语句) Save /u01/app/oracle/aa.sql (保存SQL语句) Get /u01/app/oracle/aa.sql (调用保存的SQL语句) 2.select(select 查询语句是ORACLE中最常用的语句) DML语句包括(insert 写入,update改变,delect删除,merge两张表同步) 注意:merge常用在ETL(数据仓库)底下 DDL数据定义语句包括(create创建对象,alter修改,drop删除对象,rename改名,truncate删除整个表) TCL事务处理语句(commit提交立刻生效,rollback回滚,savepoint保存点,savepoint(保存点) DCL权限语句(grant赋予权限,revoke(收回权限) ORACLE的表称之为堆表(keep table) SELECT (1) writing basic SQL select statemanes
1. selecting all columns SCOTT>select * from dept; SCOTT>select dname,deptno,loc from dept;
Basic SELECT Statement SELECT *|{[DISTINCT] column|expression [alias],...} FROM table; 2. selecting specific columns SCOTT>select deptno,dname from dept; SCOTT>select ename,sal from emp;
3. writing SQL statements SQL statements are not case sensitive. SQL statements can be on one or more lines. Keywords cannot be abbreviated or split across lines. Clauses are usually placed on separate lines. Indents are used to enhance readability.
select * FROM EMP; SELECT * FROM emp;
4. Arithmetic Expressions An arithmetic expression can contain column names, constant numeric values, and the arithmetic operators.
+ - * / arithmetic operators in any clause of a SQL statement except in the FROM clause select ename,sal+300 from emp; Operator Precedence Multiplication(*) and division(/) take priority over addition(+) and subtraction(-). Operators of the same priority are evaluated from left to right. Parentheses(...) are used to force prioritized evaluation and to clarify statements.
select ename,sal,12*sal+100 from emp; select ename,sal,12*(sal+100) from emp;
5. defing a NULL value A null is a value that is unavailable, unassigned, unknown, or inapplicable. A null is not the same as zero or a blank space.
SCOTT>select ename,sal,comm from emp; SCOTT>select ename,sal,12*sal*comm from emp;
Arithmetic expressions containing a null value evaluate to null.(空值和任何数字计算等于空值) 6. defining a Column alias Renames a column heading. Is useful with calculations. Immediately follows the column name - there can also be the optional AS keyword between the column name and alias. Requires double quotation marks if it contains spaces or special characters or is case sensitive.(备注名)
SCOTT>select ename name,sal,12*sal*comm from emp; SCOTT>select ename name,sal,12*sal*comm as "Annual Salary" from emp;
7. Concatenation Operator Concatenates columns or character strings to other columns. Is represented by two vertical bars (||). Creates a resultant column that is a character expression.
SCOTT>select ename||job as "Employees" from emp; SCOTT>select ename||' is a '||job as "Employees" from emp; (||是连接2个列之间的符号)
8. Literal Character Strings A literal is a character, a number, or a date included in the SELECT list. Date and character literal values must be enclosed within single quotation marks. Each character string is output once for each row returned.
SCOTT>select ename ||' is a'||job as "Employee Details" from emp; 9. Duplicate Rows SCOTT>select deptno from dept; SCOTT>select distinct deptno from emp;(取唯一)
(2) Restrictng and sorting data SELECT *|{[DISTINCT] column|expression [alias],...} FROM table [WHERE condition(s)];
a) WHERE CLAUSE Restrict the rows returned by using the WHERE clause. The WHERE clause follows the FROM clause.
*where:resttricts the query to rows that meet a condition.