<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 ) ;