循環數據表時出現問題<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我有一個基於SQL查詢的數據表。我想循環遍歷數據表,並根據原始數據表中的值創建和執行新的sql語句。
出於某種原因,似乎首先使用變量名稱創建sql語句兩次,然後使用實際的variabel值創建sql語句。下面我有代碼和代碼執行時日誌的結果。任何有關該問題的提示/解釋都非常感謝。
BR
漢斯
來自這裡的代碼:
dtMonitor = DatabaseOpslag(“SELECT distinct trial_no,trial_unit_reference FROM table”);
對於(I = 1,I <= NROWS(dtMonitor)中,i ++,
顯示(:trial_no );
顯示(:trial_unit_reference );
顯示(“SELECT語句,其中IMPACT_ALL_ISSUES.ISSUE_CATEGORY_CODE喜歡'PD%'和IMPACT_ALL_ISSUES.trial_no =”|| Char(EVAL(:trial_no) ))||“和IMPACT_ALL_ISSUES.trial_unit_reference like”|| Char(EVAL(:trial_unit_reference) ))||“”);
);
/ *:
從這裡記錄:
:TRIAL_NO = 3748;
:TRIAL_UNIT_REFERENCE =“822”;
“SELECT PRIMARY_INVESTIGATOR,COUNTRY_NAME,IMPACT_ALL_ISSUES.TRIAL_UNIT_REFERENCE,PATIENT_ENTRY_NO,ISSUE_CATEGORY_DESC,ISSUE_TITLE,ISSUE_DESC,ISSUE_ACTION,GCP_ISSUE,ISSUE_CREATED_BY_FORENAME,ISSUE_CREATED_BY_SURNAME,CREATED_DATE,CLOSED_DATE,ISSUE_RESOLVED FROM IMPACT_ALL_ISSUES INNER JOIN IMPACT_UNIT_LEVEL ON(IMPACT_ALL_ISSUES.UNIT_KEY = IMPACT_UNIT_LEVEL.UNIT_KEY)AND(IMPACT_ALL_ISSUES。TRIAL_NO = IMPACT_UNIT_LEVEL.TRIAL_NO)其中IMPACT_ALL_ISSUES.ISSUE_CATEGORY_CODE類似'PD%'和IMPACT_ALL_ISSUES.trial_no =“||字符(EVAL(:TRIAL_NO ))|| “和IMPACT_ALL_ISSUES.trial_unit_reference一樣”||字符(EVAL(:TRIAL_UNIT_REFERENCE ))|| “”=“SELECT PRIMARY_INVESTIGATOR,COUNTRY_NAME,IMPACT_ALL_ISSUES.TRIAL_UNIT_REFERENCE,PATIENT_ENTRY_NO,ISSUE_CATEGORY_DESC,ISSUE_TITLE,ISSUE_DESC,ISSUE_ACTION,GCP_ISSUE,ISSUE_CREATED_BY_FORENAME,ISSUE_CREATED_BY_SURNAME,CREATED_DATE,CLOSED_DATE,ISSUE_RESOLVED FROM IMPACT_ALL_ISSUES INNER JOIN IMPACT_UNIT_LEVEL ON(IMPACT_ALL_ISSUES.UNIT_KEY = IMPACT_UNIT_LEVEL.UNIT_KEY)AND (IMPACT_ALL_ISSUES.TRIAL_NO = IMPACT_UNIT_LEVEL.TRIAL_NO)其中IMPACT_ALL_ISSUES.ISSUE_CATEGORY_CODE如'PD%'和IMPACT_ALL_ISSUES.trial_no = 3748和IMPACT_ALL_ISSUES.trial_unit_reference如822“;
Re:循環訪問數據表時出現問題創建新表時以及單擊其他表時,JMP的當前數據表將更改。 使用顯式表引用而不是依賴於當前數據表是個好主意。
Craige
Re:循環訪問數據表時出現問題謝謝你幫助我的努力。使用表作為前綴有所不同。
Re:循環訪問數據表時出現問題這就是訣竅 - 謝謝你
所以只是為了我的理解/學習:當我嘗試引用變量時,jmp對我所指的數據表感到困惑?但是表格作為前綴解決了嗎?
Re:循環訪問數據表時出現問題我剛剛將用於Oracle ODBC SQL的錯誤捕獲實用程序發佈到文件交換。 點擊這裡看見了。 它特定於Oracle,但可以適用於其他數據庫。
Re:循環訪問數據表時出現問題 C Hales 是正確的。 但是你的表變量是 dtmonitor ,不是dt。 您希望循環中的sql語句中包含以下內容:
dtmonitor : trial_no [ 一世 ]
和
dtmonitor : TRIAL_UNIT_REFERENCE [ 一世 ]
Re:循環訪問數據表時出現問題JMP中的錯誤消息需要在第一次看到時解釋一下:
名稱未解決:在試用或評估'trial_no'時的trial_no,:trial_no / * ### * /
那是什麼問題,但在哪裡?下一行告訴您如何標記錯誤:
在以下腳本中,錯誤標記為/ * ### * /
D1 = Dialog(“prompt”,Monitor = edittext(“Monitor initials”));
... 跳過一堆腳本,找到...
|| Char(:trial_no / * ### * / )||
我認為JMP的數據表沒有列“trial_no”。 如果有多個數據表,則可以使用dt:trial_no明確表格以查找變量。
Re:循環訪問數據表時出現問題對不起傻的錯誤:-)
我已經更正了拼寫,當我運行腳本並且只顯示sql語句時,看起來語句是按預期生成的。但是當我嘗試將sql語句傳遞給一個進行db查詢並將結果放入表的函數時,該函數只執行一次然後拋出錯誤。我做了一個日誌,我只顯示sql語句(logshow.jsl)和我嘗試執行的語句(logexecute.jsl)。
我是jmp腳本的新手,所以我不知道該怎麼辦?
Re:循環訪問數據表時出現問題你錯過了第一個 Ë 在sql_statement中。
改變這個:
節目 ( sql_statment ) ;
對此:
節目 ( sql_statement ) ;
Re:循環訪問數據表時出現問題感謝您查看此內容,但我仍然無法生成我嘗試查看以下日誌代碼的sql語句:
代碼形式在這裡:
dtMonitor = DabaseOpslag ( “SELECT distinct trial_no,trial_unit_reference FROM IMPACT_MONITOR_WORKLOAD其中用戶名如'”|| Monitor ||“'和site_closed_date為null” ) ;
對於 ( I = 1,I <= NROWS ( dtMonitor ) 我++,
sql_statement =“SELECT PRIMARY_INVESTIGATOR,COUNTRY_NAME,IMPACT_ALL_ISSUES.TRIAL_UNIT_REFERENCE,PATIENT_ENTRY_NO,ISSUE_CATEGORY_DESC,ISSUE_TITLE,ISSUE_DESC,ISSUE_ACTION,GCP_ISSUE,ISSUE_CREATED_BY_FORENAME,ISSUE_CREATED_BY_SURNAME,CREATED_DATE,CLOSED_DATE,ISSUE_RESOLVED FROM IMPACT_ALL_ISSUES INNER JOIN IMPACT_UNIT_LEVEL ON(IMPACT_ALL_ISSUES.UNIT_KEY = IMPACT_UNIT_LEVEL.UNIT_KEY)AND( IMPACT_ALL_ISSUES.TRIAL_NO = IMPACT_UNIT_LEVEL.TRIAL_NO)其中IMPACT_ALL_ISSUES.ISSUE_CATEGORY_CODE類似'PD%'和IMPACT_ALL_ISSUES.trial_no =“|| Char ( :trial_no [ 一世 ]) ||“和IMPACT_ALL_ISSUES.trial_unit_reference like”|| Char ( :trial_unit_reference [ 一世 ]) ||“”;
節目 ( sql_statment ) ;
) ;
/ *:
記錄響應:
名稱未解析:sql_statment訪問或評估'sql_statment',sql_statment / * ### * /
Re:循環訪問數據表時出現問題是的,show()最適合使用簡單的變量名。 複雜的表達會產生令人困惑的答案。
Re:循環訪問數據表時出現問題您可以刪除EVAL。 將SQL語句設置為等於變量,然後顯示變量:
對於 ( 一世 = 1 ,一世 <= NROWS ( dtMonitor ) ,一世 ++,
節目 ( : trial_no [ 一世 ]) ;
節目 ( : trial_unit_reference [ 一世 ]) ;
sql_statement =
“SELECT聲明
其中IMPACT_ALL_ISSUES.ISSUE_CATEGORY_CODE喜歡'PD%'
和IMPACT_ALL_ISSUES.trial_no =“ || 燒焦 ( : trial_no [ 一世 ]) || “
和IMPACT_ALL_ISSUES.trial_unit_reference一樣“ || 燒焦 ( : trial_unit_reference [ 一世 ]) ;
節目 ( sql_statement ) ;
) ;