前提是电脑必须安装oracle客户端。
oracle外连接(oracle外连接的三种类型)
oracle外连接(oracle外连接的三种类型)
oracle外连接(oracle外连接的三种类型)
配置方法:
1、找到oracle的安装目录。如:C:oracleproduct10.2.0db_1
2、找到tnsnames.ora文件。
(一)不安装客户端的解决办法。
个:
不能。(+)就是连接
第二个:
1、选择oracle客户端中的Net Configuration Assistant 。
3、选择“添加”后单击“下一步”。
5别人ping你IP拼的通就可以连接、选中“tcp”后单击“下一步”。
然后用pl/sql登录数据库就可以了。
种情况基本上是不可能的,连接远程得用到oracle命令。你啥都不装去哪用?第二种情况可以连接,先配置,填好IP地址和端口,然后从客户端通过sqlplus执行
conn 用户名/密码@远程IP:端口/数据库SID 就行了。得开启。
种情况不可能
第二种情况就是在本地建立 db Link 即可
connect to scott identified by tiger
然后在使用远程db link数据表时,需要加后缀@test_db_link
如果是windows的话,在服务里面就可以查服务要启动,也要启动!可以用lsnrctl命令查看!
(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))首先你需要在我的电脑的属性里,找到环境变量,配置系统下面的path,看看里面指向的是哪里(我的电脑里就有oracle的多个版本)
而且要在你的oracle的X:oracleproduct10.2.0db_1networktnsnames.ora下配置名及相关ip地址或计算机名,X一般是你本地盘符,例如像下面的格式。
public static ResultSet oracleConn(String sql) {
String driver = "oracle.jdbc.driver.OracleDriver";
//写明你数据的连接串
String = "jdbc:Oracle:thin:@192.168.1.1:3004/xe";
Statement stmt = null;
Connection conn = null;
CallableStatement proc = null;
List
try {
Class.forName(driver);
"password");
stmt = conn.createStatement();
//执行sql语句,并返回结果
res = stmt.executeQuery(sql);
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}return res ;
create database link 远程oracle}
SELECT a., b. from a(+) = b就是一个右连接,等同于select a., b. from a right join b
} catch (ClassNotFoundException e) {SELECT a., b. from a = b(+)就是一个左连接,等同于select a., b. from a left join b
即" (+)"所在位置的另一侧为连接的方向,通常将全量与部分连接时,在部分的列后面带上(+),以达到没有匹配时,也要显示出一个null的效果
明白了么?
那要看你在什么情况下用了 , 一楼说的不错,好像也有拼接字符串的作用
代表连接
叫oracle的左连接或右连接
数据表的连接有:
1、内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现
2、外连接: 包括
(1)左外连接(左边的表不加限制)
(2)右外连接(右边的表不加限制)
(3)全外连接(左右两表都2、选择“本地Net服务名配置”后单击“下一步”。不加限制)
3、自连接(连接发生在一张基表内)
你那个 group by id 没有指明那个id 改成 group by purarri.id
但是这个sum sum通过吗?不会提示非group by 表达式吗?
--------------------------------
你试一下下面两个语句看有什么结果:
select sum(purarri.6、在主机名中输入你的数据库的主机名,或者IP地址;如果你的数据库是默认安装的可以单击“下一步”。htl)as htl,purarri.htl
from purarri,pinwei,pr2
and pinwei.id = pr2.id
and purarri.id = pr2.id
group by id
select sum(purarri.htl)as htl,purarri.htl
from purarri,pinwei,pr2
and pinwei.id = pr2.id
and purarri.id = pr2.id
groupsvrmgrl>connect internal by purarri.htl
group by purarri.htl
另外,你select了purarri.rq,purarri.jhdj,pinwei.pjpw,pr2.pjdj,pr2.id
但就group by一个id,不报‘在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中’的错误?那些列你不加聚合函数?
select A. ,B. from A,B where A.id = b.id(+)
NAMES.DIRECTORY_PATH = (TNSNAMES, ….)<2>在sqlnet.ora文件中不设置NAMES.DEFAULT_DOMAIN参数,在tnsnames.ora文件中将test.testserver中的.testserver去掉,这时你可以用test连接数据库。相当于
select A.,B. from A left join B on A.id = B.id
通俗地说tom ACCOUNTING,打个比方。
and b.工资(+) > 6500SELECT FROM A left join B ON A.F1 = B.F1 ,左连接,显示的查询结果,就是左边表的全部,和右边表的符合查询条件的数据。
listener打开,oracle数据库open,网络连通,就可以让别人使用oracle现有的用户远程连接了。首先你把hh24,换成大写试试,我没试过小写,不知道小写行不行。
你把加号去了,就是不用左连接试试,看看这样能用不?
如果还是不能,就不是这里的问题,如果能用那就可能是SUM(a.akc264)的问题。可能要把null,nvl一下。
你的b.hzhour是怎么存储上午7点的,是07还是7,如果是7,那么to_char截取出来是07,可能这块也有点问题。
00936的可能性很多,写的是缺失但是实际情况,可能是其他什么的,这个只能一次一次的做实验,你这个语句我感觉没什么问test =题,但是为什么会报这个错误,真的只能靠猜测和实验了。
oracle的和服务启动,共享连接池打开,打开即可让别人远程共享你的数据库。
把你的数据库文件发给对方附加 你这边要开启服务 你们要要是同一个网络本地实例名 =上
创建服务后别的就可以连接了
inner join、 left join 、right join、 outer join这几个连接也不是说是以前的用法,现在也可以用,就看你需要使用那种连接。
INNER JOIN是内连接,分为等值连接和不等值连接。等值连接直接可以使用“=”号运算在用oracle的图形配置软件'net assistant'或‘Net Configuration Assistant’配置网络服务名时,如已经设置了‘primary dns suffix’,但是在图形配置软件中写的网络服务名的名字中没有‘primary dns suffix’,如只是写了test,则图形配置软件会自动在后面加上‘primary dns suffix’,使之变为test.testserver,并存在tnsnames.ora中,而不管你的sqlnet.ora文件中是否有NAMES.DEFAULT_DOMAIN参数。此时,用图形工具进行测试连接是通过的,但是如此时sqlnet.ora文件中没有NAMES.DEFAULT_DOMAIN参数,则你在使用网络服务名时应该使用在tnsnames.ora中的test.testserver,而不是你在图形配置软件中键入的test。解决的办法为:符,不等值连接可以使用除了“=”号以外的其他比较运算符,例如:<,>,A.在适当的位置安装group by id未指明是哪个表的id适当的软件:>=,<=等。
LEFT JOIN是左外连接,可以使用“+=”来代替。
RIGHT JOIN是右外连接,可以使用“=+”来代替。
OUT JOIN是全外连接。
扯淡 +是以前的
(+)放在数据少的一方,可以认为数据不够所以要+
右表中如果重复,那么会出现多行
3、用文本方式打开,4、然后打开pl/sql就能看到自己创建的链接,如图:添加以下内容:右表中如果没有,那么取右表的列时,为null
select distinct a., b. from a left outer join b on a.id= b.id
2.先对右表distinct在join
select a., b1. from a left outer join (select distinct from b) b1 on a.id= b1.id
右表中如果重复,那么会出现多行
右表中如果没有,那么取右表的列时,为null
版权声明:本文内容由互联。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发 836084111@qq.com 邮箱删除。