데이터 테이블의 문자 열에 후행 공백이 있는 텍스트 문자열을 넣으면 JMP가 자동으로 해당 공백을 제거하는 것처럼 보입니다. 그런 일이 발생하는 것을 방지할 수 있는 방법이 있나요?
고마워요 이안님,
이제 좀 더 많은 맥락이 있으면 도움이 될 수 있다는 것을 깨달았습니다. 테이블에 채우는 문자 데이터는 SQL 쿼리를 사용하여 데이터베이스에서 검색하는 사용자 입력입니다. 검색된 값을 사용하여 새 쿼리를 동적으로 생성하고 있지만 공백이 잘려서 테이블의 값이 더 이상 데이터베이스의 값과 일치하지 않습니다. 이 동작은 쿼리 빌더 플랫폼의 필터 프롬프트를 사용하여 후행 공백이 있는 행을 필터링할 수 없는 이유이기도 합니다. 이 경우 쿼리 결과는 단순히 비어 있습니다. 문제의 행과 일치하는 WHERE 절을 하드 코딩하는 데 문제가 없으며 아래를 사용하여 모든 행을 후행 공백과 일치시킬 수도 있습니다. 그러나 데이터가 JMP 테이블에 들어가자마자 공백은 사라집니다.
"SELECT *
FROM schema.table
WHERE RIGHT(column, 1) = ' ';"
이 동작과 매우 유사하여 한동안 나를 괴롭혔습니다. 방금 귀하에게 유용할 수 있는 다음 희망 목록 항목을 제출했습니다.
열 데이터 유형이 변경되면 데이터 유지
이 동작을 강제하는 옵션이 있는지는 확실하지 않지만 이는 내 잘못일 수 있습니다.
그러나 다른 JSL을 사용하여 셀에 값을 '입력'하는 경우 '식 열'을 사용하여 값을 유지할 수 있습니다.
NamesDefaultToHere(1);
dt =
New Table( "Trailing White Space",
Add Rows( 2 ),
New Column( "String",
Character,
"Nominal",
Set Values( {"", ""} ),
Set Display Width( 96 )
),
New Column( "Expression String",
Expression,
"None",
Set Values( {Empty(), Empty()} )
)
);
Wait(3);
txt1 = "Text";
txt2 = "Text ";
Column(dt, 1)[1] = txt1;
Column(dt, 2)[1] = txt1;
Column(dt, 1)[2] = txt2;
Column(dt, 2)[2] = txt2;
for(r=1, r<=NRow(dt), r++, Print(Length(Column(dt, 1)[r]), Length(Column(dt, 2)[r])));
이런 방식으로 값을 저장하면 이 접근 방식의 유용성은 다음에 어떤 일이 발생하는지에 따라 달라집니다.