I realize this is a very old thread, but I thought perhaps I could add some info.
My app has 19 Oracle 19c database servers and Weblogic installations situated coast to coast, all connected via military network. I discovered some "invalid records" in one particular table on one of the databaes, an was curious as to whethr this sam type of problem existed in our other databases. I wrote a small SQL script to locate/identify the bad records.
Our databases have two database functions we wrote years ago. CHECK_NUMBER and CHECK_DATE. There is a single parameter passed to the function. The functions simply return a TRUE or FALSE depending on whether the data passed to the function is a valid date or number. Simple.
BUT - I was trying to gather data from all 19 remote databases into one central table (with the identical structure) on one of our development servers. Call it "ADAMDEV".
When I wrote INSERT INTO MYTABLE@ADAMDEV(select... <whatever>), if the Select Statement included any references to the CHECK_NUMBER or CHECK_DATE functions, SqlPlus would constantly throw a ORA-02069: global names parameter must be set to TRUE for this operation.
We don't WANT to set Global Names to TRUE because it messes up other stuff.
So... To get around it... I created the "temporary data holder" table in each of the 19 databases, ran the Sql query to populate each LOCAL version of the table using the FUNCTIONS in my query to filter to only "bad" records, then, after each database was done, I ran a script that connected to each database one at a time, and just did a direct insert (Insert into MYTABLE@ADAMDEV (Select * from...)) etc. from the remote database to the same table on my ADAMDEV server.
My question: Is there a way (without setting Global Names to TRUE) to execute a query that will be acting on a remote database (via a pre-created database link) that contains references to local database functions? Or perhaps I should specify "@ADAMDEV" prepended to my function calls? (will that even work? CHECK_DATE@ADAMDEV?) It was not a big deal to add a few extra steps to get what my bosses wanted, but it would be good to know if there were a way to do something similar, but being able to FILTER a query using a local function, while INSERTING the selected data into a remote database via a DB Link Anyone know if it can be done/how?