I am trying to implement BLOB Locators concept in oracle db using pro*c/c++.
My DB table columns are of BLOB datatype and i want to insert/update data using BLOB Locators and that data is passed as parameter in the function.
As i have understood till this point the Locators concept, please comment if i am wrong:-
- Declare the Locator variable - OCIBlobLocator *<locator_variable>;
Allocate the memory for Locator variable - EXEC SQL ALLOCATE :<locator_variable>;
Map the Locator variable with the DB Column - EXEC SQL SELECT <column_name> INTO :<locator_variable> FROM <table_name>;
Perform the operation(in this case UPDATE operation) - EXEC SQL UPDATE <table_name> SET <cloumn_name>=:<locator_variable>;
Free the memory of Locator variable - EXEC SQL FREE :<locator_variable>;
In my case i am having data passed as parameter in the function, so how to map the locator variable to particular column.
While updating the BLOB column i am getting the Segmentation Fault(core dump). So during UPDATE operation what <locator_variable> contains memory address or the data value.
I my opinion i am having address mapping problem, while updating the BLOB column.
Can you guys suggest any thing. Thanks for your help.