Oracle 데이터베이스와 통신하는 응용 프로그램에서 쿼리를 정렬하려면 열 이름을 참조하려고합니다. 바인드 변수를 사용하여 쿼리 순서를 동적으로 바꿀 수 있습니다.Oracle에서 바인드 변수를 통해 열 이름을 참조 할 수 있습니까?
내가 겪고있는 문제는 데이터베이스가 열을 기준으로 주문을 무시하는 것 같습니다.
바인드 변수를 통해 데이터베이스 열을 참조하는 특별한 방법이 있는지 또는 가능한지 알고있는 사람이 있습니까?
예를 들어 내 쿼리가 알파벳 순서로 쿼리는 반환하지 않습니다 결과를 (:1
이 PERSON.NAME
에 바인딩됩니다)
SELECT * FROM PERSON ORDER BY :1
, 나는 데이터베이스로이 해석되는 것을 걱정 : -
SELECT * FROM PERSON ORDER BY 'PERSON.NAME'
분명히 작동하지 않습니다.
모든 의견을 보내 주시면 감사하겠습니다.
+1 btw 오라클의 경우 맞는지는 모르겠지만 DB2와 같은 다른 데이터베이스에는 분명히 단점이 있습니다. 쿼리 명령 텍스트를 수정하면 데이터베이스를 캐시하는 것이 훨씬 어려워집니다. 시간 (그리고 매개 변수의 값뿐만 아니라) –
그것은 오라클에서도 발생합니다. 그러나 명령 텍스트를 항상 변경하지는 않습니다.열 이름에는 몇 가지 선택 사항 만 있으므로 5 개의 캐시 항목 만 있습니다. – Thilo
고마워, 나에게 의미가있다. 나는 order by 절을 볼 때 코드를 이해하도록 노력할 것이고, 거기에 바인드 변수가 있으면 그 값으로 대체 할 것이다. – Scottm