<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />JMP 12에서 쿼리 작성기를 사용하여 데이터베이스에서 정보를 검색합니다.
우리는 이미 다른 응용 프로그램을 사용하여 이렇게하기 위해 이미 작성된 코드가 많이 있습니다. JMP에서 코드를 '사용자 지정 SQL'로 복사하여 붙여 넣기 만하면됩니다. 그러나 그것은 내가 원했던 것처럼 매끄럽게 작동하지 않고 메시지를받습니다.
SQL 쿼리 실행 오류 :
[오라클] [ODBC] {Ora] ORA-00911 : 잘못된 문자
[SQLSTATE = HY000]
SQL에 대해 알고있는 사람들 몇 명에게 물어 보았는데이 코드로는 '틀린 것을 볼 수 없습니다'
/ * FORMULATION_SAMPLES TABLE 및 여러 오류 추적 표에서 작성 날짜 * /
고르다
sample_value_summary.sample_identifier, order_in_workflow AS "ORDER", creation_date,
max (param_def_lov_id = 19, value_string end 인 경우) "MATERIAL",
max (param_def_lov_id = 18의 경우 value_string 끝) "BATCH",
max (param_def_lov_id = 5 일 때 end 값) "TARGET",
max (param_def_lov_id = 24 일 경우 값 끝) "ACTUAL",
(최대 값 (param_def_lov_id = 24 일 때 값 끝일 때) - 최대 값 (param_def_lov_id = 5 일 때 값 끝일 때)) * 1000 "ERROR [mg]",
ABS (최대 값 (param_def_lov_id = 24 일 때 값 끝일 때의 최대 값) - 최대 값 (param_def_lov_id = 5 일 때 값 끝일 때)) * 1000)을 "ERROR [mg]",
최대 값 (param_def_lov_id = 5 일 때 값 끝일 때) max * (param_def_lov_id = 5 일 때 값 끝일 때)) * 100,3)을 "ERROR [ %] ",
ABS (ROUND ((max (param_def_lov_id = 24 then value end의 경우) - max (param_def_lov_id = 5 일 때 end value)) / max (param_def_lov_id = 5 일 때 value end 일 때)) * 100,3)) as "절대 오류 [%]",
max (param_def_lov_id = 34 인 경우 / 86400 + to_timestamp ( '01011970', 'dd-mm-yyyy') 끝) "START TIME",
max (param_def_lov_id = 35 인 경우 / 86400 + to_timestamp ( '01011970', 'dd-mm-yyyy') 끝) "STOP TIME"
(최대 (param_def_lov_id = 35 일 때 값 끝) - 최대 (param_def_lov_id = 34 일 때 값 끝)) "PROCESS TIME"
SCO_HTFS.sample_value_summary, SCO_HTFS.formulation_samples
여기서 sample_value_summary.sample_identifier = formulation_samples.sample_identifier 및
param_def_lov_id in (5,18,19,24,34,35) 및 bms_module_id in (11,12)
및 exp_plan_sample_id in (exp_plan_sample_id를 sco_htfs.exp_plan_samples에서 선택하십시오. 여기서 exp_plan_id in (
sco_htfs.experiment_plans에서 exp_plan_id를 선택하십시오. 여기서 experiment_id = / * 실험 입력 값 입력 * / 4742))
/ * to_timestamp (/ * ENTER 시작 날짜는 여기에서 / / '01012014', 'dd-mm-yyyy')와 current_timestamp 사이의 creation_date 시간이 필요하지 않으면이 줄을 삭제합니다.
sample_value_summary.sample_identifier, order_in_workflow, creation_date별로 그룹화
sample_value_summary.sample_identifier에 의한 순서, order_in_workflow;
이 코드는 다른 응용 프로그램에서 성공적으로 실행되므로 '올바르게'작성되었지만 호환되지 않습니다. 그러면이 프로그램이 올바르게 실행되지 않을 수도 있습니다. 여기에 같은 메시지를주는 몇 가지 항목이 있으므로 JMP에 필요한 방식과 미묘한 차이가 있음을 의미합니다.
문안 인사
데이비드
나는 개인적으로 코멘트가 문제인지 의심 스럽다. 나는 작동중인 Oracle 쿼리에 C 스타일 주석을 추가했으며 쿼리는 여전히 작동했다.
d_barnett의 SQL을 가져 와서 Oracle에 제출하려고하면 오류가 발생합니다.
[Oracle] [ODBC] [Ora] ORA-00933 : SQL 명령이 제대로 종료되지 않았습니다. [SQLSTATE = HY000]
잘못된 문자가 아닙니다.
이것은 Windows가 아닌 Mac에서 사용됩니다.
조심해야 할 한 가지 스타일은 따옴표 (싱글 또는 더블)가 붙여 넣기중인 SQL에 몰래 들어가는 것입니다. SQL을 메모장에 먼저 붙여 넣은 다음 JMP에 복사하여 붙여 넣으십시오.
나는 작동하지 않는 SQL의 간단한 버전으로 돌아가서 다시 실패 할 때까지 부분을 추가하기 시작할 것을 제안한다. 오라클이 잘못된 문자가 무엇인지 알려줄 수 있다면 정말 멋질 것입니다.
잘못된 문자를 발견하면 여기에 다시 게시하십시오. 어쩌면 JMP는 SQL을 제출하기 전에 스타일 따옴표를 위해 커스텀 SQL을 스캔하여 일반 따옴표로 변환해야합니다 (실제로 문제가 따옴표로 묶인 경우).
감사,
에릭