oracle依赖怎么写 oracle 依赖查询
teradata的maven依赖怎么写
oracle数据仓库本质上是依赖于关系型数据库来实现了OLAP的,所以ORACLE数据仓库中在建模中会使用星型模型来实现 teradata的话,其实是依赖于teradata的硬件设备来实现,所以它的数据仓库在设计上就不需要设计成星型模型的 设计成星型模型的话
网站设计制作过程拒绝使用模板建站;使用PHP+MYSQL原生开发可交付网站源代码;符合网站优化排名的后台管理系统;成都网站设计、网站建设、外贸网站建设收费合理;免费进行网站备案等企业网站建设一条龙服务.我们是一家持续稳定运营了十载的创新互联建站网站建设公司。
oracle sql 新人问题 什么是“依赖”
对于初学者最好还是从字段之间的配比关系来理解依赖,凡是x n:1 y的则可看成y=f(x)也就是说y和x之间存在一个函数关系,进一步的说则可有两种说法:一种是x能推出y,一种是y函数依赖x。对于上题
学号n:1系名
系名n:1系大楼
结果是系大楼函数依赖系名,系名函数依赖学号,所以系大楼函数依赖学号,在关系代数中将复合函数又称为传递函数或传递依赖,所以系大楼传递依赖学号
在数据库中如果你真的这样建了表的话,一个系搬到另一栋系大楼的话,就要修改所有该系学生的信息了,这是很不科学的。
oracle 存储过程 递归实现 依赖分析
下面是用oracle数据库解决不用start with 来查询子父数据查询方法,里面主要用到了substr 和instr 函数(这两个函数,其他数据库也有相对应的函数),游标(其他数据库也有游标)。
-- 1 前提:创建表以及插入数据
CREATE TABLE TMP_TEST(MAIN_COLUMN VARCHAR2(10),PARENT_COLUMN VARCHAR2(10));
INSERT INTO TMP_TEST(MAIN_COLUMN,PARENT_COLUMN) VALUES('A',NULL);
INSERT INTO TMP_TEST(MAIN_COLUMN,PARENT_COLUMN) VALUES('B','A');
INSERT INTO TMP_TEST(MAIN_COLUMN,PARENT_COLUMN) VALUES('C','A');
INSERT INTO TMP_TEST(MAIN_COLUMN,PARENT_COLUMN) VALUES('D','A');
INSERT INTO TMP_TEST(MAIN_COLUMN,PARENT_COLUMN) VALUES('E','B');
INSERT INTO TMP_TEST(MAIN_COLUMN,PARENT_COLUMN) VALUES('F','C');
INSERT INTO TMP_TEST(MAIN_COLUMN,PARENT_COLUMN) VALUES('G','E');
-- 2 创建存储过程
CREATE OR REPLACE PROCEDURE GET_TREE(IS_PARENT IN NUMBER /** 子父查询 **/,
SEARCH_ID IN VARCHAR2 /** 查询条件节点 **/,
TREE_RESOUT OUT VARCHAR2 /** 输出结果集合 **/)
AS
V_TEMP VARCHAR2(4000);
V_SEARCH VARCHAR2(4000);
V_INDEX INTEGER;
BEGIN
V_TEMP :=SEARCH_ID||'-';
TREE_RESOUT := '';
WHILE length(V_TEMP) 0 LOOP
V_INDEX := instr(V_TEMP,'-');
V_SEARCH := substr(V_TEMP,0,V_INDEX-1);
V_TEMP := substr(V_TEMP,V_INDEX+1);
/*DBMS_OUTPUT.put_line('V_INDEX:'|| V_INDEX ||'V_TEMP:' ||V_TEMP||'V_SEARCH:'|| V_SEARCH);*/
/** 查询子节点 **/
if(IS_PARENT = 1) THEN
FOR C1 IN (SELECT * FROM TMP_TEST T1 WHERE T1.PARENT_COLUMN = V_SEARCH) LOOP
TREE_RESOUT := TREE_RESOUT || C1.MAIN_COLUMN;
V_TEMP := V_TEMP || C1.MAIN_COLUMN || '-';
END LOOP;
ELSE
/** 查询父节点 **/
FOR C1 IN (SELECT * FROM TMP_TEST T1 WHERE T1.MAIN_COLUMN = V_SEARCH) LOOP
TREE_RESOUT := TREE_RESOUT || C1.PARENT_COLUMN;
V_TEMP := V_TEMP || C1.PARENT_COLUMN || '-';
END LOOP;
END IF;
END LOOP;
/*DBMS_OUTPUT.put_line('TREE_RESOUT:'||TREE_RESOUT);*/
END;
-- 3 调用存储过程
declare
TREE_RESULT VARCHAR2(4000);
SEARCH_ID VARCHAR2(4000);
begin
get_tree(1,'A',TREE_RESULT);
dbms_output.put_line('查询子节点:' || TREE_RESULT);
get_tree(0,'G',TREE_RESULT);
dbms_output.put_line('查询父节点:' || TREE_RESULT);
end;
pom.xml里面oracle的依赖关系怎么写
第一步:将ojdbc14.jar放到用户目录,比如:C:\Users\qicyt1812
第二步:在cmd中执行命令:mvn
install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14
-Dversion=10.2.0.1.0 -Dpackaging=jar -Dfile=ojdbc14.jar
C:\Users\qicyt1812mvn install:install-file -DgroupId=com.oracle
-DartifactId=ojdbc14 -Dversion=10.2.0.1.0 -Dpackaging=jar
-Dfile=ojdbc14.jar
这样就将jdbc驱动安装到maven的本地资源库了,当cmd命令中出现如下代码,就表示安装成功了。
C:\Users\qicyt1812mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc1
4 -Dversion=10.2.0.1.0 -Dpackaging=jar -Dfile=ojdbc14.jar
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install-file (default-cli) @ standalone-po
m ---
[INFO] Installing C:\Users\qicyt1812\ojdbc14.jar to D:\eclipse\apache-maven-local-re
pository\com\oracle\ojdbc14\10.2.0.1.0\ojdbc14-10.2.0.1.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.100s
[INFO] Finished at: Fri Oct 25 14:24:18 CST 2013
[INFO] Final Memory: 6M/53M
[INFO] ------------------------------------------------------------------------
进入D:\eclipse\apache-maven-local-repository\com\oracle\ojdbc14\10.2.0.1.0\ 查看,成功install 到本地
第三步:在所需工程的pom.xml中添加dependency
!-- 加载oracel jdbc驱动包 --
dependency
groupIdcom.oracle/groupId
artifactIdojdbc14/artifactId
version10.2.0.1.0/version
/dependency
经过上述步骤,就能使用oracle驱动了。
如何有效实现依赖Oracle的缓存策略
ASP.NET 中的缓存提供了对SQL依赖项的支持,也就是说当SQL SERVER数据库中的表或行中的数据被更改后,缓存中的页面就失效,否则,页面输出可一直保留在缓存当中。这确实为程序员提供了方便。但微软一向很小家子气,只为使用自家产品SQL SERVER的程序员提供了方便,那些用Oracle数据库的ASP.NET程序员怎么办呢?
其实不用着急,因为ASP.NET中的缓存还提供了对文件依赖项的支持,也就是缓存依赖于某个文件,该文件被修改后,缓存中的页面就失效。只要巧妙利用ASP.NET的文件依赖项缓存策略和Oracle中的触发器,就可轻松实现依赖Oracle的缓存策略。思路很简单,先将页面的缓存策略设置为依赖某一个文件,再为Oracle中需要依赖的表添加一个触发器,当表中的数据被更改时,修改缓存所依赖的文件中的内容。
下面以一个小例子来具体说明:
试验目的:Default.aspx页面的缓存依赖于Oracle数据库中SCOTT用户的DEPT表,该表中数据被更改后,缓存中的页面失效。缓存的过期时间为120秒。
一、设置网站页面的缓存依赖于文件TextFile.txt详见System.Web.Caching.Cache类 Asp.NET缓存 各种缓存依赖二、在Oracle数据库中创建触发器
1、触发器被触发时执行PL/SQL代码块。PL/SQL代码块直接读写操作系统中的文件,需调用内置的utl_file程序包。这需要先修改Oracle的初始化参数文件INIT.ORA,在其中添加参数utl_file_dir,来指定文件的目录。修改INIT.ORA文件后,需重启Oracle数据库,设置的参数才能生效。
在INIT.ORA文件中添加下面一行内容:
utl_file_dir='E:/CSharp/CacheByOracleDependncy'
也可以设置为utl_file_dir=*,不指定具体目录,即任何目录都可以。
如果是Oracle 9i数据库,还有一种方法也能起到同样的作用:在sys用户下创建一个directory目录(实际上是在sys用户下的dir$表中增加一个对应的OS_PATH),然后将对该directory对象的读/写操作的权限grant给public。
[sql] view plain copy
create or replace directory FILEPATH as 'E:/CSharp/CacheByOracleDependncy';grant read on directory FILEPATH to public;这里我使用的是第二种方法。
2、为所依赖的表(SCOTT用户的DEPT表)创建一个触发器:当DEPT表中的数据更改后,触发器就会将当前系统时间写入TextFile.txt文件中。
[sql] view plain copy
CREATE OR REPLACE TRIGGER
"SCOTT"."TEST_CACHE_BY_ORACLE_DEPENDNCY" AFTERINSERT
OR UPDATE
OR DELETE OF "DEPTNO", "DNAME", "LOC" ON "SCOTT"."DEPT" DECLAREfile_handle utl_file.file_type;
BEGIN
--打开文件
file_handle := utl_file.fopen('FILEPATH','TextFile.txt','w');--将当前系统时间写入文件
IF utl_file.is_open(file_handle) THEN
utl_file.put_line(file_handle,to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'));END IF;
--关闭文件
utl_file.fclose(file_handle);
EXCEPTION
WHEN OTHERS THEN
BEGIN
IF utl_file.is_open(file_handle) THEN
utl_file.fclose(file_handle);
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END;
如果应用服务器和数据库服务器不是同一台服务器可能会遇到项目无法成功访问文件进行依赖的情况:
解决方法详见ASP.Net访问网络驱动器(映射磁盘)
centos7安装oracle11.2.0需要哪些依赖
CentOS 7 的环境为
$ uname -a
Linux oracle 3.10.0-123.13.1.el7.x86_64 #1 SMP Tue Dec 9 23:06:09 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
注意安装的时候需要安装一个桌面系统(X-Windows + KDE 或者 Gnome),否则安装程序无法运行。
然后根据需要修改共享内存等等系统参数。这个也不写了,网上有很多。不过据我的测试,CentOS7貌似不需要修改也是可以的,Oracle在进行安装检查的时候没有报告问题(和以前的不一样)。当然为了调优数据库的性能,还是修改的好。
安装gcc,因为后面Oracle link的时候会用到
yum install gcc
安装结果为
[plain] view plaincopy
gcc --version
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
(这里注意,因为Oracle需要的3.4和安装的4.8的参数的区别,后面link会失败,解决方法见后)
1. 下载,需要下载两个文件
p10404530_112030_Linux-x86-64_1of7.zip
p10404530_112030_Linux-x86-64_2of7.zip
2. 解压缩,把这两个文件解压到同一个目录下
3. 运行installer。中间依赖检查那一步,可以Skip。因为Oracle要检查是否安装了gcc,glibc等等比较老的版本(3.4)
4. 前面一切顺利。到了Link那一步,出错了。Log显示
error in invoking target 'agent nmhs'
在网上查到了解决方案:
[plain] view plaincopy
vi $ORACLE_HOME/sysman/lib/ins_emagent.mk
Search for the line
$(MK_EMAGENT_NMECTL)
Change it to:
$(MK_EMAGENT_NMECTL) -lnnz11
5. Retry重试。这就OK了。
6. 之后就没啥问题了。正常安装,执行root脚本,等等。
7. 安装后重启服务器。
8. 重启后,检查oracle用户的环境变量:
[plain] view plaincopy
declare -x ORACLE_HOME="/home/oracle/app/oracle/product/11.2.0/dbhome_1"
declare -x ORACLE_SID="orcl"
9. 进入$ORACLE_HOME/network/admin,检查listener.ora:
[plain] view plaincopy
[oracle@oracle admin]$ cat listener.ora
# listener.ora Network Configuration File: /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.33.212)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /home/oracle/app/oracle
重点检查其中的SID,HOST,PORT,ORACLE_HOME是否正确。如果不正确客户端会报告ERROR-ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务 错误。
如果没有问题,进入$ORACLE_HOME/bin,启动监听器:
[plain] view plaincopy
[oracle@oracle bin]$ ./lsnrctl
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 16-DEC-2014 11:22:03
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
[plain] view plaincopy
LSNRCTL start
Starting /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.3.0 - Production
System parameter file is /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Log messages written to /home/oracle/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.16.33.212)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.16.33.212)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date 16-DEC-2014 11:22:07
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /home/oracle/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.16.33.212)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).
Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL
启动正常,使用sqlplus启动数据库:
[plain] view plaincopy
[oracle@oracle bin]$ ./sqlplus '/ as sysdba'
SQL startup
ORACLE instance started.
Total System Global Area 960372736 bytes
Fixed Size 2234160 bytes
Variable Size 557844688 bytes
Database Buffers 394264576 bytes
Redo Buffers 6029312 bytes
Database mounted.
Database opened.
10. Centos7自带了SELINUX,关掉
11. Centos7自带了下一代防火墙firewalld,关掉,否则客户端连接过来会报TNS Timeout异常
[plain] view plaincopy
[root@oracle ~]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
现在其它机器就应该可以正常连接并使用Oracle了。
另:装Oracle最省事的还是在Oracle自己的Enterprise Linux上安装。那些依赖,系统参数,等等等都不需要设置了。
本文名称:oracle依赖怎么写 oracle 依赖查询
文章网址:http://myzitong.com/article/hgohss.html