小编hot*_*fix的帖子

addAll()是否返回false?

同时查看CollectionUtils addAll方法的源代码.我注意到它使用|=符号

public static <T> boolean addAll(Collection<? super T> c, T... elements) {
 boolean result = false;
 for (T element : elements)
    result |= c.add(element);

 return result;
}
Run Code Online (Sandbox Code Playgroud)

从我的理解|=是一个按位或运算符,只是一个简写result = result|c.add(element),所以例如:

System.out.println(false|true); //true
System.out.println(false|false); //false
System.out.println(true|false); //true
System.out.println(true|true); //true
Run Code Online (Sandbox Code Playgroud)

这意味着如果成功添加任何项目,它将返回true.现在我一直想知道会有一个实例,它会返回false吗?如果不是为什么它有回报?

java collections

5
推荐指数
1
解决办法
2383
查看次数

使用完整连接字符串和 EZCONNECT 绕过 tnsnames.ora 时出现“ORA-12560:TNS:协议适配器错误”

尝试使用任一连接字符串绕过 tnsnames.ora(完整连接字符串和 EZCONNECT)会在尝试连接到数据库时返回以下错误:

pyodbc.Error: ('HY00', '[HY00] [Oracle][ODBC][Ora]ORA-12560: TNS:protocol adapter error\n (12560) (SQLDriverConnect);[Oracle][ODBC][Ora]ORA -12560: TNS: 协议适配器错误\n (12560)')

我尝试使用https://www.connectionstrings.com/oracle/ 中的以下连接字符串:

Driver={Oracle in OraClient11g_home1}; Data Source=uid/pwd@//host:port/service_name;

Driver={Oracle in OraClient11g_home1};
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=port))) 
                         (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=service_name)));
User Id=uid;Password=pwd;'
Run Code Online (Sandbox Code Playgroud)

我可以使用 sqlplus 和 EZCONNECT 连接到数据库:

PS: C:\>sqlplus uid/pwd@//host:port/service_name

SQL*PLUS: Release 11.2.0.1.0 Production on Thu Aug 30 11:56:22 2018

Copyright (c) 1982, 2010, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production

SQL>
Run Code Online (Sandbox Code Playgroud)

我怀疑这是驱动程序问题,因为使用不同的驱动程序会返回不同的错误:

pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序 …

oracle odbc tnsnames pyodbc oracle11g

4
推荐指数
1
解决办法
5582
查看次数

无法将日期数据插入到Oracle表中

无法将日期数据插入oracle表。请找到以下查询和错误

查询:

INSERT INTO TEST.SUPPLIER
(SUPPLIER_ID, SUPPLIER_NAME, CONTACT_NAME, DOB)
VALUES(6, 'rr', 'ss','2019-06-19');
Run Code Online (Sandbox Code Playgroud)

错误:

SQL错误[1843] [22008]:ORA-01843:无效月份VALUES(6,'rr','ss','2019-06-19'),错误消息= ORA-01843:无效月份ORA -01843:无效月份

oracle

3
推荐指数
1
解决办法
63
查看次数

SQL 我不明白我的触发器有什么问题

我很难理解这个错误:

第 3 行错误:PLS-00103:在预期以下情况之一时遇到符号“&”:

) , * & - + / 在 mod 余数 rem 和 or as || 多集

  1. 创建或替换触发器 class_trigger
  2. 在为每一行插入课堂之前
  3. 开始
  4. IF (type = 'vl' && mass < 15000) THEN
  5. 质量:= 15000;

代码是:

CREATE OR REPLACE TRIGGER class_trigger
BEFORE INSERT ON Class FOR EACH ROW
BEGIN

  IF (type = 'vl' && mass < 15000) THEN
  mass := 15000;
  END IF;

END;
Run Code Online (Sandbox Code Playgroud)

我的代码有什么问题?我正在使用 Oracle 的 APEX。谢谢。

sql oracle plsql database-trigger oracle-apex

2
推荐指数
1
解决办法
96
查看次数

我们可以在蟾蜍中使用假脱机功能吗

我可以使用sql * plus使用假脱机。我们可以为此使用UTL函数。

但是我想知道的是,我们是否在Toad中为Oracle使用了假脱机。

我已尝试并收到错误Ora-00900。

oracle toad sqlplus

1
推荐指数
1
解决办法
44
查看次数

IN和EXISTS的结果

我有两个表table_hold和table_pass,我在下面的查询中查找TAble_pass中是否存在任何ID,然后从table_hold中删除该ID。我正在使用以下查询:

delete from Table_hold
        where  EXISTS ( SELECT 1 FROM Table_pass pass
            WHERE id = pass.id );
Run Code Online (Sandbox Code Playgroud)

这有什么问题吗?由于table_hold中的Id = 4,而table_pass中的Id = 4,因此仍从table_hold中删除了它。

以下是创建的虚拟表:

create table Table_pass(id1 number);
create table table_hold(id1 number);

insert into table_pass values(1);
insert into table_pass values(2);
insert into table_pass values(3);
insert into table_hold values(4);


 delete from Table_hold
 where  EXISTS ( SELECT 1 FROM Table_pass pass
 WHERE id1 = pass.id1 );
Run Code Online (Sandbox Code Playgroud)

此查询在table_hold中删除ID为4的一行

sql oracle

1
推荐指数
1
解决办法
55
查看次数

插入语句中的PL / SQL绑定变量,

VARIABLE dept_id NUMBER

SET AUTOPRINT ON

DECLARE
max_dept departments.department_id%TYPE; 
dept_name departments.department_name%TYPE := 'Revenue';

BEGIN

SELECT MAX(department_id) 
INTO max_dept 
FROM departments; 

:dept_id := max_dept +10;

INSERT INTO departments (department_id,department_name,location_id)
VALUES(:dept_id,dept_name,NULL); 



END;

Run Code Online (Sandbox Code Playgroud)

返回错误

错误报告:ORA-01400:无法将NULL插入(“ HR”。“ DEPARTMENTS”。“ DEPARTMENT_ID”)ORA-06512:在第13行01400。00000-“无法将NULL插入(%s)” *原因:

oracle plsql

0
推荐指数
1
解决办法
99
查看次数