I think there is a bug in jdbc filter. I use logstash version 6.2.3
I have two Database system, Oracle and Mysql with the same structure.
Is Oracle and Mysql query different?
In Mysql,
jdbc_streaming {
jdbc_driver_library => "/usr/share/logstash/vendor/jar/jdbc/mysql-connector-java-5.1.46-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://localhost:3306/Jecheon?useSSL=false"
jdbc_user => "secret"
jdbc_password => "****"
statement => "SELECT CID, PORT, LORA_DEVID, MEAIN_STAT_CODE_NO FROM
TB_REN016_002 WHERE LORA_DEVID = :lora_devid AND PORT = :port"
parameters => {
"lora_devid" => "LoraID"
"port" => "Port"
}
target => "matchingCid"
}
And in Oracle,
jdbc_streaming {
jdbc_driver_library => "/usr/share/logstash/vendor/jar/jdbc/ojdbc6.jar"
jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
jdbc_connection_string => "jdbc:oracle:thin:@192.168.2.41:1521/XE"
jdbc_user => "secret"
jdbc_password => "****"
statement => "SELECT CID, PORT, LORA_DEVID, MEAIN_STAT_CODE_NO FROM TB_REN016_002 WHERE LORA_DEVID = :lora_devid AND PORT = :port"
parameters => {
"lora_devid" => "LoraID"
"port" => "Port"
}
target => "matchingCid"
}
Mysql case, the query runs correctly. But, Oracle doesn't. I think there is a difference between Oracle and Mysql query about refering to string field. LoraID type is string. If remove LoraID in where clause, it run correctly too in Oracle. But LoraID condition is needed.
Anyone knows about this issue?