问题描述
有没有人在从 Logstash JDBC Input Plugin 连接到 Oracle DB 时遇到过这个问题:
class Salary:
"""An employee receives one salary for each job he has."""
def __init__(self,value,job,employee):
self.value = value
self.job = job
self.employee = employee
def __repr__(self):
return f"{self.employee} works as {self.job} and earns {self.value}"
def __eq__(self,other):
"""A salary is equal to another if value is equal."""
return self.value == other.value
def __hash__(self):
"""A salary can be identified with the couple employee-job."""
return hash(self.employee) + hash(self.job)
alice = 'Alice'
bob = 'Bob'
engineer = 'engineer'
teacher = 'teacher'
alice_engineer = Salary(10,engineer,alice)
alice_teacher = Salary(8,teacher,alice)
bob_engineer = Salary(10,bob)
print(alice_engineer == alice_teacher)
print(alice_engineer == bob_engineer,'\n')
print(alice_engineer is alice_engineer)
print(alice_engineer is alice_teacher)
print(alice_engineer is bob_engineer,'\n')
alice_jobs = set([alice_engineer,alice_teacher])
print(alice_jobs)
print(bob_engineer in alice_jobs) # IMPORTANT
print(bob_engineer in list(alice_jobs)) # IMPORTANT
我能够通过 sql 开发人员使用相同的凭据和连接详细信息进行连接。
这是我的 Logstash JDBC 输入:
False
True
True
False
False
{Alice works as teacher and earns 8,Alice works as engineer and earns 10}
False
True
我的 Oracle 版本是 19.3 和 Logstash-7.9.1 (windows)
解决方法
我看到您正在使用 oracle jdbc 驱动程序 21.1 版本中的 ojdbc8.jar。尝试一个简单的独立 java 测试来连接您的数据库,看看您是否遇到相同的错误。如果问题重现,则粘贴完整的错误堆栈跟踪。 SQLDeveloper 可能使用了不同版本的 ojdbc jar。