<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />該 log_execute_sql 實用程序執行Oracle SQL語句並在日誌中查找任何錯誤。 如果發現錯誤,它們將顯示在消息框中。 有一個調試標誌,當打開時,將在執行前顯示SQL語句。 對於JMP 11及更高版本,需要打開日誌窗口,可通過首選項進行設置(請參閱下面的評論)。
功能名稱 :log_execute_sql
描述 :執行SQL並捕獲日誌文件中的Oracle ODBC錯誤。 如果找到,則向用戶顯示警告消息。 如果全局變量:: g_log_execute_sql_debug標誌設置為1,則在執行之前顯示SQL。
參數 :
_caller調用程序。 這將包含在錯誤消息中
使用create database connection調用創建_dbc數據庫連接
_sql sql語句運行
_invisible如果為1,則設置不可見標誌。 如果為0,請不要設置它。
_tbl_name可選表名,用於提供返回的結果表。 如果沒有所需的表名使用 “ “
子程序 :執行sql
清除日誌
得到日誌
返回 :指向數據集的指針
評論 :特定於Oracle,但可以適用於其他數據庫
需要以下首選項集:
喜好 ( 記錄開放策略 ( “添加文字時” )) ; //打開日誌窗口 - JMP 11所需
此首選項是可選的但很好用:
PREF ( ODBC隱藏連接字符串 ( 1 )) ; //不要在數據集中顯示連接字符串
示例調用 :
1。將Oracle表中的數據檢索到不可見的數據集中
//調用程序的名稱
PNAME = “PROGRAM1” ;
//你的數據庫連接字符串
db_dsn = “Driver = {Oracle in OraClient11g64_home}; Dbq = MYDBNAME; UID = MYUSER; PWD = MYPASSWORD;”
DBC = 創建數據庫連接 ( db_dsn ) ;
//要使用的SQL語句
sql_statement =
“SELECT rp.parameter_name,rp.parameter_value
來自myschema.my_parameters rp“ ;
//從PARAMETERS表中獲取值
param_dataset = log_execute_sql ( PNAME , DBC , sql_statement , 1 , “我的參數” ) ;
關閉數據庫連接 ( DBC ) ;
2。執行INSERT語句:
//調用程序的名稱
PNAME = “Program2中” ;
//你的數據庫連接字符串
db_dsn = “Driver = {Oracle in OraClient11g64_home}; Dbq = MYDBNAME; UID = MYUSER; PWD = MYPASSWORD;”
DBC = 創建數據庫連接 ( db_dsn ) ;
sql_statement = evalinsert (
“INSERT INTO myschema.my_activity_log
(user_created,date_created,my_section,activity,parameter1,value1,parameter2,value2,
parameter3,value3,parameter4,value4,parameter5,value5,parameter6,value6,parameter7,value7,
parameter8,value8)
VALUES('^ one_current_user_id ^',SYSDATE,'DASHBOARD','REFRESH','Product Name','^ product_name_txt ^',
'所有者','^ owner_txt ^','搜索事件文本','^ search_event_txt ^','Date From','^ date_from_txt ^',
'Date To','^ date_to_txt ^','Alert Status','^ alert_status_txt ^','Event Types',
'^ concat_event_types_list ^','警報類型','^ concat_alert_types_list ^')“ ) ;
//運行此SQL 沒有檢索到表,因為它是一個簡單的插入
log_execute_sql ( PNAME , DBC , sql_statement , 0 , “” ) ;
//關閉數據庫連接
關閉數據庫連接 ( DBC ) ;