Hello,
On 02/05/16 16:22, gmele wrote:
Hello Daniel,
I'm now investigating the presence notification module problem and the odbc query:
replace watchers (presentity_uri,watcher_username,watcher_domain,event,status,inserted_time,reason ) values ('sip:xxx@zzzzzzz','yyyyy','zzzzzzzz,'presence',1,1462197118,'');
This query will insert a new row if it doesn't exist and replace it if it exists in the table.
This requests fails with unixodbc and oracle as it seems it is not supported. Can you confirm me if the odbc query replace is supported for oracle? Didn't find anything on the web.
It is raw query sent to unixodbc, if oracle doesn't support it, then it throws error.
Is there the possiblity to split this query in 2: first a select, then an insert or update?
Theoretically yes -- db_postgres does this kind of trick: first try an update and if affected rows is 0 then it does an insert. However, I am not familiar with unixodbc api to know if affected rows number is available for oracle.
You will have to write code in c for db_unixodbc, to inspire from replace implementation in db_postgres -- I expect to be quite on pair with the impelmentation for postgres, the db modules in kamailio follow similar pattern with functions.
Cheers, Daniel