Hi,
I'm relatively new to the Oracle world, having only recently started using Oracle as a reporting warehouse for extracted data from our Ingres billing database.
I have run into a slight problem with SQL*Loader. It may be a restriction of the tool, it may not. Anyway, here goes:
We have a control script. A central script that looks for the existence of data files and calls specific load scripts if that file exists. The scripts that are called utilise two schemas (A and B for arguments sake). So, a user A and a user B exist. However, there is a restriction that user A can only see schema A and B can only see schema B. In steps user C, who has overreaching access to both schemas (as well as their own schema C) for admin/dataloads.
Some of the data is pretty hefty that we are loading and there is a requirement for three tables to be IOTs. Because of this, we can't up the ROWS value in SQL*Loader. Due to time constraints, the committing after each 64 rows is pushing us dangerously close to cut-off. Tests with using the DIRECT=TRUE flag showed favoured results in time, but we discovered that user C cannot load the files because SQL*Loader can no longer cross schemas. Synonyms don't work. The whole point of using C was so as we didn't need to code multiple username password combinations into the control script (and people that shouldn't access a certain schema couldn't come in a get the username/password combo from the script). The username and password of user C were passed to the control script as parameters.
Tests with external tables failed due to running out of undo tablespace and until we can convince management here that the box needs more hardware, there isn't an option to extend that area.
Any suggestions on how we can use the DIRECT=TRUE flag and cross schemas would be greatly appreciated.
I'm relatively new to the Oracle world, having only recently started using Oracle as a reporting warehouse for extracted data from our Ingres billing database.
I have run into a slight problem with SQL*Loader. It may be a restriction of the tool, it may not. Anyway, here goes:
We have a control script. A central script that looks for the existence of data files and calls specific load scripts if that file exists. The scripts that are called utilise two schemas (A and B for arguments sake). So, a user A and a user B exist. However, there is a restriction that user A can only see schema A and B can only see schema B. In steps user C, who has overreaching access to both schemas (as well as their own schema C) for admin/dataloads.
Some of the data is pretty hefty that we are loading and there is a requirement for three tables to be IOTs. Because of this, we can't up the ROWS value in SQL*Loader. Due to time constraints, the committing after each 64 rows is pushing us dangerously close to cut-off. Tests with using the DIRECT=TRUE flag showed favoured results in time, but we discovered that user C cannot load the files because SQL*Loader can no longer cross schemas. Synonyms don't work. The whole point of using C was so as we didn't need to code multiple username password combinations into the control script (and people that shouldn't access a certain schema couldn't come in a get the username/password combo from the script). The username and password of user C were passed to the control script as parameters.
Tests with external tables failed due to running out of undo tablespace and until we can convince management here that the box needs more hardware, there isn't an option to extend that area.
Any suggestions on how we can use the DIRECT=TRUE flag and cross schemas would be greatly appreciated.