powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Data идущая в oracle
9 сообщений из 9, страница 1 из 1
Data идущая в oracle
    #34571820
crashc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
        String sql = "{call  cn_mysql.get_all_net(?,?,?,?,?,?,?,?,?,?) }";
            cs = cnOra.prepareCall(sql);
            cs.setString( 1 , ap_num);
            cs.setString( 2 , "0");            
            //cs.setDate(3, "20070601000001");
            cs.setDate( 3 ,"01.06.2007 00:00:01");
            //cs.setString(4, "20070605000001");
            cs.setString( 5 , "0");
            cs.setString( 6 , n_net);
            cs.registerOutParameter( 7 , Types. CHAR );            
                cs.setString( 8 , "0");
                cs.setString( 9 , "0");
                cs.setString( 10 , "0");
            cs.execute();      
all_bytes=cs.getString( 7 );
Ребят, странновато может, но все же, не могу понять...
Если из девелоперы процедуру вызываю, то параметры дат пишу как "03.06.2007 0:00:01" - jочень важнга каждая секунда...
Вот...
А когда пытаюсь передать его в Java
Код: plaintext
cs.setString( 3 ,"01.06.2007 00:00:01");
То ни чего :(
Т.е. без времени все отрабатывает, в вот с ним - ни как :(
Как не играл, не выходит :(
Ни кто не сталкивался ???
...
Рейтинг: 0 / 0
Data идущая в oracle
    #34571926
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
java.sql.Date идет без секунд, по крайней мере в драйвере от Oracle. Используй java.sql.Timestamp,
только лучше сперва создать его экземпляр с нужной датой/временем и передавать уже его через
cs.setTimestamp().
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Data идущая в oracle
    #34572135
crashc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, но если же
Код: plaintext
cs.setString( 4 , "2007-06-01 00:00:00");
Почему это не отрабатывает то ???
...
Рейтинг: 0 / 0
Data идущая в oracle
    #34572159
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crashc wrote:

> Да, но если же
>
Код: plaintext
cs.setString( 4 , "2007-06-01 00:00:00");
>
> Почему это не отрабатывает то ???

Как не отрабатывает? Ругается или как-то иначе?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Data идущая в oracle
    #34572232
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть это поможет...

Time and Date Literals
Databases differ in the syntax they use for date, time, and timestamp literals. JDBC
supports dates and times written only in a specific format. This section describes the
formats you must use for date, time, and timestamp literals in SQL statements.

Date Literals
The JDBC drivers support date literals in SQL statements written in the format:
{d 'yyyy-mm-dd'}
Where yyyy-mm-dd represents the year, month, and day. For example:
{d '1995-10-22'}
The JDBC drivers will replace this escape clause with the equivalent Oracle
representation: "22 OCT 1995".
The following code snippet contains an example of using a date literal in a SQL
statement.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
// Connect to the database
// You can put a database name after the @ sign in the connection URL.
OracleDataSource ods =  new  OracleDataSource();
ods.setURL("jdbc:oracle:oci:@");
ods.setUser("scott");
ods.setPassword("tiger");
Connection conn = ods.getConnection();
// Create a Statement
Statement stmt = conn.createStatement ();
// Select the ename column from the emp table where the hiredate is Jan-23-1982
ResultSet rset = stmt.executeQuery
("SELECT ename FROM emp WHERE hiredate = {d '1982-01-23'}");
// Iterate through the result and print the employee names
 while  (rset.next ())
System.out.println (rset.getString ( 1 ));

Time Literals
The JDBC drivers support time literals in SQL statements written in the format:
Embedded SQL92 Syntax
A-8 Oracle Database JDBC Developer's Guide and Reference
{t 'hh:mm:ss'}
where, hh:mm:ss represents the hours, minutes, and seconds. For example:
{t '05:10:45'}
The JDBC drivers will replace this escape clause with the equivalent Oracle
representation: "05:10:45".
If the time is specified as:
{t '14:20:50'}
Then the equivalent Oracle representation would be "14:20:50", assuming the server is
using a 24-hour clock.
This code snippet contains an example of using a time literal in a SQL statement.
Код: plaintext
1.
ResultSet rset = stmt.executeQuery
("SELECT ename FROM emp WHERE hiredate = {t '12:00:00'}");

Timestamp Literals
The JDBC drivers support timestamp literals in SQL statements written in the format:
{ts 'yyyy-mm-dd hh:mm:ss.f...'}
where yyyy-mm-dd hh:mm:ss.f... represents the year, month, day, hours,
minutes, and seconds. The fractional seconds portion (.f...) is optional and can be
omitted. For example: {ts '1997-11-01 13:22:45'} represents, in Oracle format,
NOV 01 1997 13:22:45.
This code snippet contains an example of using a timestamp literal in a SQL statement.
Код: plaintext
1.
ResultSet rset = stmt.executeQuery
("SELECT ename FROM emp WHERE hiredate = {ts '1982-01-23 12:00:00'}");
...
Рейтинг: 0 / 0
Data идущая в oracle
    #34572234
crashc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имею вот такую конструкцию...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
   public  String get_net_traff(String ap_num, String dt1, String dt2, String n_net)  throws  ServletException {
      String all_bytes = "000";
      CallableStatement cs;
 try  {
        String sql = "{call  get_allb.raffic(?,?,?,?,?,?,?,?,?,?) }";
            cs = cnOra.prepareCall(sql);
            cs.setString( 1 , "202803");
            cs.setString( 2 , "0");            
            cs.setString( 3 ,"2007-06-01 00:00:00");
            cs.setString( 4 , "2007-06-05 00:00:00");
            cs.setString( 5 , "0");
            cs.setString( 6 , "0");
            cs.registerOutParameter( 7 , Types. CHAR );            
                cs.setString( 8 , "0");
                cs.setString( 9 , "0");
                cs.setString( 10 , "0");
            cs.execute();      
all_bytes=cs.getString( 7 );
//if (dsl_app_num.length()==6) { System.out.println("ok dsl apparature"); }
//else { dsl_app_num="0"; System.out.println("0"); }
        
        }  catch  (SQLException ex) {
            ex.printStackTrace(); System.out.println("MAIN SQLException: " + ex.getMessage());
        }
 catch  (NullPointerException exx) {
            System.out.println("0xEFFFFF");
            all_bytes="0";
        }
     return  all_bytes; 
  }    
Дак вот... При
Код: plaintext
cs.setString( 3 ,"2007-06-01 00:00:00");
При вызове конструкции - 000, а при
Код: plaintext
cs.setString( 3 ,"2007-06-01");
Все отрабатывет!
Но в SQLDevelopere же и так и так отдает...
...
Рейтинг: 0 / 0
Data идущая в oracle
    #34572309
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри параметр сессии NLS_DATE_FORMAT, в SQL Developer'е и в java. Если уж очень хочется, то
можешь сделать примерно следующее, если 3-й и 4-й параметры функции get_allb.raffic() имеют тип DATE:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
String sql =
   "{call get_allb.raffic(" +
   "  ?,?," +
   "  to_date(?, 'yyyy-mm-dd hh24:mi:ss')," +
   "  to_date(?, 'yyyy-mm-dd hh24:mi:ss')," +
   "  ?,?,?,?,?,?)" +
   "}";
cs = cnOra.prepareCall(sql);
cs.setString( 1 , "202803");
cs.setString( 2 , "0");
cs.setString( 3 ,"2007-06-01 01:23:45");
cs.setString( 4 , "2007-06-05 12:34:56");
но имхо лучше делать через Timestamp.
...
Рейтинг: 0 / 0
Data идущая в oracle
    #34572343
crashc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мда...
Благодарю и снимаю шляпу! И не только за данную личную мну помощь! А и вобще... Спасибо ! Дадеюсь не в последний раз ;)
...
Рейтинг: 0 / 0
Data идущая в oracle
    #34572398
crashc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мну=мне ;) очипятка, сорри :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Data идущая в oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]