214: --
215: procedure execute_source is
216: l_dynamic_cursor integer; -- Dynamic sql cursor
217: l_execute integer; -- Value returned by
218: -- dbms_sql.execute
219: l_proc varchar2(72) := g_package||'execute_source';
220: begin
221: hr_utility.set_location('Entering:'|| l_proc, 10);
222: --
222: --
223: -- The whole of the new package body code has now been built,
224: -- use dynamic SQL to execute the create or replace package statement
225: --
226: l_dynamic_cursor := dbms_sql.open_cursor;
227: dbms_sql.parse(l_dynamic_cursor, g_source, dbms_sql.v7);
228: l_execute := dbms_sql.execute(l_dynamic_cursor);
229: dbms_sql.close_cursor(l_dynamic_cursor);
230: hr_utility.set_location(' Leaving:'|| l_proc, 20);
223: -- The whole of the new package body code has now been built,
224: -- use dynamic SQL to execute the create or replace package statement
225: --
226: l_dynamic_cursor := dbms_sql.open_cursor;
227: dbms_sql.parse(l_dynamic_cursor, g_source, dbms_sql.v7);
228: l_execute := dbms_sql.execute(l_dynamic_cursor);
229: dbms_sql.close_cursor(l_dynamic_cursor);
230: hr_utility.set_location(' Leaving:'|| l_proc, 20);
231: exception
224: -- use dynamic SQL to execute the create or replace package statement
225: --
226: l_dynamic_cursor := dbms_sql.open_cursor;
227: dbms_sql.parse(l_dynamic_cursor, g_source, dbms_sql.v7);
228: l_execute := dbms_sql.execute(l_dynamic_cursor);
229: dbms_sql.close_cursor(l_dynamic_cursor);
230: hr_utility.set_location(' Leaving:'|| l_proc, 20);
231: exception
232: --
225: --
226: l_dynamic_cursor := dbms_sql.open_cursor;
227: dbms_sql.parse(l_dynamic_cursor, g_source, dbms_sql.v7);
228: l_execute := dbms_sql.execute(l_dynamic_cursor);
229: dbms_sql.close_cursor(l_dynamic_cursor);
230: hr_utility.set_location(' Leaving:'|| l_proc, 20);
231: exception
232: --
233: -- In case of an unexpected error close the dynamic cursor
233: -- In case of an unexpected error close the dynamic cursor
234: -- if it was successfully opened.
235: --
236: when others then
237: if (dbms_sql.is_open(l_dynamic_cursor)) then
238: dbms_sql.close_cursor(l_dynamic_cursor);
239: end if;
240: --
241: -- If a compilation error is expected then sliently trap the error.
234: -- if it was successfully opened.
235: --
236: when others then
237: if (dbms_sql.is_open(l_dynamic_cursor)) then
238: dbms_sql.close_cursor(l_dynamic_cursor);
239: end if;
240: --
241: -- If a compilation error is expected then sliently trap the error.
242: -- A user hook specific error has already been logged in the
1846: -- specific call has been processed
1847: -- for the current hook package
1848: -- procedure and sequence number
1849: -- range.
1850: l_execute integer; -- Value from dbms_sql.execute
1851: l_api_hook_call_id number(15); -- Value from Dynamic cursor
1852: l_object_version_number number(15); -- Value from Dynamic cursor
1853: l_call_package varchar2(30); -- Value from Dynamic cursor
1854: l_call_procedure varchar2(30); -- Value from Dynamic cursor
1897: --
1898: -- Execute the Dynamic SQL statement which has been created
1899: --
1900: -- Open dynamic cursor
1901: l_dynamic_cursor := dbms_sql.open_cursor;
1902: hr_utility.set_location(l_proc, 30);
1903: --
1904: -- Parse dynamic SQL
1905: dbms_sql.parse(l_dynamic_cursor, l_dynamic_sql, dbms_sql.v7);
1901: l_dynamic_cursor := dbms_sql.open_cursor;
1902: hr_utility.set_location(l_proc, 30);
1903: --
1904: -- Parse dynamic SQL
1905: dbms_sql.parse(l_dynamic_cursor, l_dynamic_sql, dbms_sql.v7);
1906: hr_utility.set_location(l_proc, 40);
1907: --
1908: -- Bind dynamic SQL variable
1909: dbms_sql.bind_variable(l_dynamic_cursor, ':p_api_hook_id', p_api_hook_id);
1905: dbms_sql.parse(l_dynamic_cursor, l_dynamic_sql, dbms_sql.v7);
1906: hr_utility.set_location(l_proc, 40);
1907: --
1908: -- Bind dynamic SQL variable
1909: dbms_sql.bind_variable(l_dynamic_cursor, ':p_api_hook_id', p_api_hook_id);
1910: hr_utility.set_location(l_proc, 50);
1911: --
1912: -- Define dynamic SQL columns
1913: dbms_sql.define_column(l_dynamic_cursor, 1, l_api_hook_call_id);
1909: dbms_sql.bind_variable(l_dynamic_cursor, ':p_api_hook_id', p_api_hook_id);
1910: hr_utility.set_location(l_proc, 50);
1911: --
1912: -- Define dynamic SQL columns
1913: dbms_sql.define_column(l_dynamic_cursor, 1, l_api_hook_call_id);
1914: dbms_sql.define_column(l_dynamic_cursor, 2, l_object_version_number);
1915: dbms_sql.define_column(l_dynamic_cursor, 3, l_call_package, 30);
1916: dbms_sql.define_column(l_dynamic_cursor, 4, l_call_procedure, 30);
1917: hr_utility.set_location(l_proc, 60);
1910: hr_utility.set_location(l_proc, 50);
1911: --
1912: -- Define dynamic SQL columns
1913: dbms_sql.define_column(l_dynamic_cursor, 1, l_api_hook_call_id);
1914: dbms_sql.define_column(l_dynamic_cursor, 2, l_object_version_number);
1915: dbms_sql.define_column(l_dynamic_cursor, 3, l_call_package, 30);
1916: dbms_sql.define_column(l_dynamic_cursor, 4, l_call_procedure, 30);
1917: hr_utility.set_location(l_proc, 60);
1918: --
1911: --
1912: -- Define dynamic SQL columns
1913: dbms_sql.define_column(l_dynamic_cursor, 1, l_api_hook_call_id);
1914: dbms_sql.define_column(l_dynamic_cursor, 2, l_object_version_number);
1915: dbms_sql.define_column(l_dynamic_cursor, 3, l_call_package, 30);
1916: dbms_sql.define_column(l_dynamic_cursor, 4, l_call_procedure, 30);
1917: hr_utility.set_location(l_proc, 60);
1918: --
1919: -- Execute and fetch dynamic SQL
1912: -- Define dynamic SQL columns
1913: dbms_sql.define_column(l_dynamic_cursor, 1, l_api_hook_call_id);
1914: dbms_sql.define_column(l_dynamic_cursor, 2, l_object_version_number);
1915: dbms_sql.define_column(l_dynamic_cursor, 3, l_call_package, 30);
1916: dbms_sql.define_column(l_dynamic_cursor, 4, l_call_procedure, 30);
1917: hr_utility.set_location(l_proc, 60);
1918: --
1919: -- Execute and fetch dynamic SQL
1920: --
1918: --
1919: -- Execute and fetch dynamic SQL
1920: --
1921: l_first_cus_call := true;
1922: l_execute := dbms_sql.execute(l_dynamic_cursor);
1923: hr_utility.set_location(l_proc, 70);
1924: while dbms_sql.fetch_rows(l_dynamic_cursor) > 0 loop
1925: --
1926: -- Get the column values for the current row
1920: --
1921: l_first_cus_call := true;
1922: l_execute := dbms_sql.execute(l_dynamic_cursor);
1923: hr_utility.set_location(l_proc, 70);
1924: while dbms_sql.fetch_rows(l_dynamic_cursor) > 0 loop
1925: --
1926: -- Get the column values for the current row
1927: --
1928: dbms_sql.column_value(l_dynamic_cursor, 1, l_api_hook_call_id);
1924: while dbms_sql.fetch_rows(l_dynamic_cursor) > 0 loop
1925: --
1926: -- Get the column values for the current row
1927: --
1928: dbms_sql.column_value(l_dynamic_cursor, 1, l_api_hook_call_id);
1929: dbms_sql.column_value(l_dynamic_cursor, 2, l_object_version_number);
1930: dbms_sql.column_value(l_dynamic_cursor, 3, l_call_package);
1931: dbms_sql.column_value(l_dynamic_cursor, 4, l_call_procedure);
1932: if l_first_cus_call then
1925: --
1926: -- Get the column values for the current row
1927: --
1928: dbms_sql.column_value(l_dynamic_cursor, 1, l_api_hook_call_id);
1929: dbms_sql.column_value(l_dynamic_cursor, 2, l_object_version_number);
1930: dbms_sql.column_value(l_dynamic_cursor, 3, l_call_package);
1931: dbms_sql.column_value(l_dynamic_cursor, 4, l_call_procedure);
1932: if l_first_cus_call then
1933: --
1926: -- Get the column values for the current row
1927: --
1928: dbms_sql.column_value(l_dynamic_cursor, 1, l_api_hook_call_id);
1929: dbms_sql.column_value(l_dynamic_cursor, 2, l_object_version_number);
1930: dbms_sql.column_value(l_dynamic_cursor, 3, l_call_package);
1931: dbms_sql.column_value(l_dynamic_cursor, 4, l_call_procedure);
1932: if l_first_cus_call then
1933: --
1934: -- Add support call to allow for customer hook switch off
1927: --
1928: dbms_sql.column_value(l_dynamic_cursor, 1, l_api_hook_call_id);
1929: dbms_sql.column_value(l_dynamic_cursor, 2, l_object_version_number);
1930: dbms_sql.column_value(l_dynamic_cursor, 3, l_call_package);
1931: dbms_sql.column_value(l_dynamic_cursor, 4, l_call_procedure);
1932: if l_first_cus_call then
1933: --
1934: -- Add support call to allow for customer hook switch off
1935: --
1954: hr_utility.set_location(l_proc, 90);
1955: --
1956: -- Close Dynamic Cursor
1957: --
1958: dbms_sql.close_cursor(l_dynamic_cursor);
1959: --
1960: -- Close the support if statement
1961: --
1962: if not l_first_cus_call then
1968: -- In case of an unexpected error ensure
1969: -- that the Dynamic Cursor is closed.
1970: --
1971: when others then
1972: if dbms_sql.is_open(l_dynamic_cursor) then
1973: dbms_sql.close_cursor(l_dynamic_cursor);
1974: end if;
1975: raise;
1976: end make_customer_calls;
1969: -- that the Dynamic Cursor is closed.
1970: --
1971: when others then
1972: if dbms_sql.is_open(l_dynamic_cursor) then
1973: dbms_sql.close_cursor(l_dynamic_cursor);
1974: end if;
1975: raise;
1976: end make_customer_calls;
1977: --