Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не работает SQLJ на сервере (Oracle 12c) / 5 сообщений из 5, страница 1 из 1
04.12.2017, 20:22
    #39564021
Wassja
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает SQLJ на сервере (Oracle 12c)
Добрый день!
SQLJ у меня работал в версии Oracle 11g.
Попытался запустить в Oracle 12c.
Код: plaintext
1.
2.
COMPAT_LEVEL: 12.2.0
VERSION: 12.2.0.1.0
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE OR REPLACE JAVA SOURCE NAMED "test_source" AS
import java.sql.*;
import oracle.jdbc.*;
import oracle.sqlj.runtime.*;
import oracle.sqlj.*;
public class test_s{
    //#sql public static iterator objectlter(String,String);
    //#sql { update tab1 set at1 = "1235" };
    public static String hello() throws SQLException
    {
        //#sql { commit };
        return "Hello, World!";
    }
}


Код: plsql
1.
2.
3.
4.
5.
create or replace
FUNCTION hello_f RETURN VARCHAR2 AS LANGUAGE JAVA NAME 
	'test_s.hello()  return Java.lang.String';

SELECT hello_f FROM dual;


В таком состоянии все работает. Если убрать любой комментарий, то появляются ошибки при запуске hello_f. Например вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
ORA-29541: не может быть разрешен класс AAA.test_s
29541. 00000 -  "class %s.%s could not be resolved"  
*Cause:    An attempt was made to execute a method in a Java class
           that had not been previously and cannot now be compiled
           or resolved successfully.
*Action:   Adjust the call or make the class resolvable.

Подозреваю, что проблемы с import, но в документации ничего не нашел.
Спасибо!
...
Рейтинг: 0 / 0
04.12.2017, 20:33
    #39564025
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает SQLJ на сервере (Oracle 12c)
Не воспроизводится:

Код: plsql
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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
SQL> connect scott@pdb1sol12/tiger
Connected.
SQL> select  banner
  2    from  v$version
  3  /

BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
PL/SQL Release 12.1.0.2.0 - Production
CORE    12.1.0.2.0      Production
TNS for 64-bit Windows: Version 12.1.0.2.0 - Production
NLSRTL Version 12.1.0.2.0 - Production

SQL> CREATE OR REPLACE JAVA SOURCE NAMED "test_source" AS
  2  import java.sql.*;
  3  import oracle.jdbc.*;
  4  import oracle.sqlj.runtime.*;
  5  import oracle.sqlj.*;
  6  public class test_s{
  7      public static String hello() throws SQLException
  8      {
  9          return "Hello, World!";
 10      }
 11  }
 12  /

Java created.

SQL> create or replace
  2  FUNCTION hello_f RETURN VARCHAR2 AS LANGUAGE JAVA NAME 
  3   'test_s.hello()  return Java.lang.String';
  4  /

Function created.

SQL> SELECT hello_f FROM dual
  2  /

HELLO_F
--------------------------------------------------------------------------------------------------------
Hello, World!

SQL> connect scott@pdb1sol122/tiger
Connected.
SQL> select  banner
  2    from  v$version
  3  /

BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
PL/SQL Release 12.2.0.1.0 - Production
CORE    12.2.0.1.0      Production
TNS for 64-bit Windows: Version 12.2.0.1.0 - Production
NLSRTL Version 12.2.0.1.0 - Production

SQL> CREATE OR REPLACE JAVA SOURCE NAMED "test_source" AS
  2  import java.sql.*;
  3  import oracle.jdbc.*;
  4  import oracle.sqlj.runtime.*;
  5  import oracle.sqlj.*;
  6  public class test_s{
  7      public static String hello() throws SQLException
  8      {
  9          return "Hello, World!";
 10      }
 11  }
 12  /

Java created.

SQL> create or replace
  2  FUNCTION hello_f RETURN VARCHAR2 AS LANGUAGE JAVA NAME 
  3   'test_s.hello()  return Java.lang.String';
  4  /

Function created.

SQL> SELECT hello_f FROM dual
  2  /

HELLO_F
--------------------------------------------------------------------------------------------------------
Hello, World!

SQL> 



SY.
...
Рейтинг: 0 / 0
04.12.2017, 21:02
    #39564040
Wassja
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает SQLJ на сервере (Oracle 12c)
SY,
Да, в таком состоянии у меня работает.
Но если добавить любую строчку с #sql, то работать перестает.
Например добавить
Код: plsql
1.
#sql { commit };
...
Рейтинг: 0 / 0
04.12.2017, 21:03
    #39564041
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает SQLJ на сервере (Oracle 12c)
Wassja,

12.2 Changes in This Release for Oracle SQLJ Developer’s Guide
авторSQLJ in the Server

Starting with Oracle Database 12c Release 2 (12.2), Oracle does not support server-side SQLJ code.

К тому же у тебя ошибка в коде:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE OR REPLACE JAVA SOURCE NAMED "test_source" AS
import java.sql.*;
import oracle.jdbc.*;
import oracle.sqlj.runtime.*;
import oracle.sqlj.*;
public class test_s{
    #sql public static iterator objectlter(String,String);
    
    public static String hello() throws SQLException
    {
        #sql { update tab1 set at1 = "1235" };
        #sql { commit };
        return "Hello, World!";
    }
}
/

...
Рейтинг: 0 / 0
04.12.2017, 21:20
    #39564044
Wassja
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает SQLJ на сервере (Oracle 12c)
xtender,
Большое спасибо!
Вопрос закрыт.
Но я не ожидал такого...
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не работает SQLJ на сервере (Oracle 12c) / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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