DBI doesn't return any error. The code runs successfully, but the data remains in the database. I connect manually using SQLPLUS and I can see that the data is still there. I have the necessary privs on the database because I can delete them manually with a query.
I believe the problem is that I am not properly using placeholders.
In principle your code and SQL should work. One more thing you can try is to change your SQL from using DELETE to using SELECT - my guess is that your value in $var is wrong.
Maybe the id column is a CHAR column instead of a number? Is the code you posted the actual code you're running? Maybe you can show us the real, actual code (minus the login to Oracle) you're using?