Как параметризовать запросы на основе даты в Oracle - PullRequest
0 голосов
/ 14 июля 2010
ResultSet rs=st.executeQuery(
    "select j.vc_jo_no,
            j.dt_jo_date,
            p.vc_product_name 
     from mst_jobcard j,
          mst_prod p 
     where j.vc_product_code=p.vc_product_code 
     and   j.dt_jo_date=to_char("+tdate+","+"'"+dd-mm-yy+"'"+")
    ");

В моем указанном запросе должны отображаться записи, основанные на параметре даты, который передается в вышеуказанном запросе.vc_jo_no, dt_jo_date взяты из таблицы mst_jobcard, а vc_product_name - из таблицы mst_prod.Я присоединился к столам.Пожалуйста, помогите мне, как использовать функцию to_char для даты.Когда я определяю формат, т.е. дд-мм-гг в функции to_char, это дает ошибку.пожалуйста, помогите ..

Ответы [ 2 ]

4 голосов
/ 14 июля 2010

Если вы собираетесь передать дату в виде строки, она нужна Oracle, заключенная в одинарные кавычки.Кроме того, "дд-мм-гг" мне не подходит.Попробуйте это:

ResultSet rs=st.executeQuery(
"select j.vc_jo_no,
        j.dt_jo_date,
        p.vc_product_name 
 from mst_jobcard j,
      mst_prod p 
 where j.vc_product_code=p.vc_product_code 
 and   j.dt_jo_date=to_char('"+tdate+"','dd-mm-yy')
");

Тем не менее, этот метод передачи параметров фактически НЕ передает параметр - он заставит базу данных анализировать разные запросы для каждой другой запрошенной даты, что может вызвать масштабируемость.проблема.

Лучшим подходом было бы связать параметр, используя любой метод, предоставляемый ResultSet для связывания переменной.Вы можете обнаружить, что можете даже связать переменную даты без необходимости конвертировать ее в строку.

1 голос
/ 14 июля 2010

Итак, вы бежите:

executeQuery("select … where … j.dt_jo_date=to_char("+tdate+","+"'"+dd-mm-yy+"'"+")");

Прежде всего, попробуйте поместить эту строку в переменную, вывести ее и посмотреть, в правильном ли она формате.

Вы пробовали:

"… to_char("+tdate+",'dd-mm-yy'")

кажется, что вы делаете ненужную акробатику с этой строкой.

И, наконец, взгляните на " Использование Oracle to_char " от Burleson Consulting. Это была первая ссылка из Google . Некоторые говорят, что Google - это хорошее место для поиска в первую очередь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...