2 - Fair enough, so is the same when using C extensions, nothing new when using standards with multiple implementations
3 - https://www.thatjeffsmith.com/archive/2014/02/how-to-start-t... (2014 tutorial on purpose)
4 - Just like a UNIX admin can do the same in a production server if the culture isn't there
What if instead we have to use Amazon Aurora or Azure cosmosdb …
you can’t simply use C for your stored procedure and you can’t simply login in the vm to have a debugger.
Oracle was just an example of what the minimum bar should be.
With Oracle you can also use C for the stored procedures if you are so much inclined, although I really wouldn't advocate for it.
As for logging in, it is a matter of permissions and policies.
It being available means people will do it, and I want nothing to do with that.
My team is unfortunately responsible for maintaining a legacy monstrosity of an app that uses thousand line stored procs. You’re kinda advocating for that as ‘right’. I’ll take a ‘fad’ database missing the ‘proper tooling’ to let people do such things any day.
but in big company only DBA are allowed to make change to the db not the developers. And sadly most dba refuse to use those tool.
1, 4 - can be achieved with tools such as DBT
2, 3 - certain databases come with proper Python environment with various tooling around that
Also in my last 30 year working for different industries, it’s extremely rare that DBA write unit test or a proper deploy system to automatically rollback if anything break while changing database schema or stored procedure.
the best DBA i have met use Liquibase or something similar to treat database code like app code. But this is the exception not the norm.
Debugging databases has slightly different aims than debugging code, and it's much easier since you have the whole relational db available as a debugging tool. It's effortless to store states in temporary tables.