同时查看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吗?如果不是为什么它有回报?
尝试使用任一连接字符串绕过 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表。请找到以下查询和错误
查询:
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:无效月份
我很难理解这个错误:
第 3 行错误:PLS-00103:在预期以下情况之一时遇到符号“&”:
) , * & - + / 在 mod 余数 rem 和 or as || 多集
代码是:
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 * plus使用假脱机。我们可以为此使用UTL函数。
但是我想知道的是,我们是否在Toad中为Oracle使用了假脱机。
我已尝试并收到错误Ora-00900。
我有两个表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的一行
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)” *原因: