ORA-00955: name is already used by an existing object
JeremyDel opened this issue · 7 comments
Is there an existing issue for this?
- I have searched the existing issues
Current Behavior
I have some experience with dbt but None with dbt-oracle and I'm getting a bit frustrated..
When trying to create a dummy model from a simple table, when running dbt run for the first time my model is created but when I run dbt run for the second time I get the following error:
ORA-00955: name is already used by an existing object
I don't think this is the desired behaviour of dbt, it should recreate the table no ?
I attempted to do the same with an incremental table and the compilled code isn't not outputting any merge statement as it should do and I get the same error as above.
Expected Behavior
No response
Steps To Reproduce
No response
Relevant log output using --debug flag enabled
No response
Environment
- OS: Windows
- Python: 3.10.11
- dbt-core: 1.7.15
- dbt-oracle: 1.7.5What Oracle database version are you using dbt with?
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Additional Context
No response
It would good to check database name if it is lowercase or uppercase. I am suspecting there is some mismatch in the metadata.
select SYS_CONTEXT('userenv', 'DB_NAME') from dual;Also, have you defined any quoting configuration in dbt-project.yml file?
The database name is lowercase !
I did try all the quoting possibilities in my dbt-project.yml but it doesn't work
quoting:
database: true
identifier: false
schema: false
Also, is this on-prem or Autonomous database ?
This is onprem.
I could recreate the error on another simple oracle database on which I can use the system user and when adding the database parameter in profiles.yml I was getting the error. By removing the database it worked as it should.
I cannot remove the database parameter when using another user:
Runtime Error
Credentials in profile "consilium", target "dev" invalid: 'database' is a required property
Could you try after enabling quoting only for database ?
quoting:
database: trueYes that worked !
Thank you so much for your fast answers !