Oracle SQL 문에 변수를 전달하는 JMP 13 JSL모달 창을 사용하여 변수를 정의하는 JMP 13 스크립트가있는 동료와 협력하고 있습니다. 그런 다음 사용자 선택은 SQL 문에서 스크립트의 열린 데이터베이스 섹션으로 전달할 변수를 설정합니다. 모달 창에서 오븐이 선택되는 데이터 테이블이 업데이트됩니다. 그런 다음 오븐 열을 선택하여이 값을 SQL 문에 전달합니다.
예.
OvenList={18,22};
nw=New Window( " Reference Units",<<MODAL></MODAL>
우리가 가진 이슈는 다음과 같습니다.
oven_id : 스크립트는 [2,2]를 통과합니다.
test_part_id : 스크립트는 { "partid1", "partid2"}를 전달합니다.
질문들
1) 오븐 열의 첫 번째 값을 SQL 문으로 전달되는 oven_id로 설정하려면 어떻게해야합니까?
2) 오라클은 괄호와 큰 따옴표를 좋아하지 않는 것처럼 보입니다. 우리가 작은 따옴표와 부분 ID를 하드 코딩하면 작동합니다 : IN ( 'partid1', 'partid2')
도움!!!
제목 : Re : Oracle SQL 문에 변수를 전달하는 JMP 13 JSL다행은 당신을 위해 일했습니다. ^ varname ^ 구조체는 다음과 함께 사용해야합니다. 평가 절하 . evalinsert를 사용하면 코드를 좀 더 깔끔하게 볼 수 있으며 char ()를 사용하여 숫자를 문자열로 변환 할 필요가 없습니다.
test_part_in_list = "('" || concat items(test_part_id, "', '") || "')";
sql = evalinsert(
"Select db.table.field1
db.table.field2
db.table.field3
FROM db.table
WHERE db.table.exprmt = 'blah'
AND db.table.field = ^oven_id[1]^
AND db.table.field In ^test_part_in_list^ ORDER BY test_part_id ASC");
Open Database( -- connection string info -- , sql, "dataset");제목 : Re : Oracle SQL 문에 변수를 전달하는 JMP 13 JSLpmroz,
빠른 답장과 코드 제안을 보내 주셔서 감사합니다. 그것은 우리의 응용 프로그램에 완벽하게 작동했습니다. 고맙습니다. 우리는 ^ var_name ^, ^ || var_name || ^ 등을 사용하여 다양한 포럼에서 모든 종류의 솔루션을 시도했습니다. 목록을 작성하여 솔루션을 우리가 놓친 해결책 단계했습니다.
제목 : Re : Oracle SQL 문에 변수를 전달하는 JMP 13 JSL 값 가져 오기 목록을 반환하므로 배열 요소를 사용하려면 개별 배열 요소를 참조해야합니다. 당신이 사용할 수있는 연결 항목 IN 목록을 만듭니다. 이것은 작동 할 것이다 :
test_part_in_list = "('" || concat items(test_part_id, "', '") || "')";
sql =
"Select db.table.field1
db.table.field2
db.table.field3
FROM db.table
WHERE db.table.exprmt = 'blah'
AND db.table.field = " || char(oven_id[1]) || "
AND db.table.field In " || test_part_in_list || "ORDER BY test_part_id ASC";
Open Database( -- connection string info -- , sql, "dataset");