powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не работает SQLJ на сервере (Oracle 12c)
5 сообщений из 5, страница 1 из 1
Не работает SQLJ на сервере (Oracle 12c)
    #39564021
Wassja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
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
Не работает SQLJ на сервере (Oracle 12c)
    #39564025
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не воспроизводится:

Код: 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
Не работает SQLJ на сервере (Oracle 12c)
    #39564040
Wassja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY,
Да, в таком состоянии у меня работает.
Но если добавить любую строчку с #sql, то работать перестает.
Например добавить
Код: plsql
1.
#sql { commit };
...
Рейтинг: 0 / 0
Не работает SQLJ на сервере (Oracle 12c)
    #39564041
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
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
Не работает SQLJ на сервере (Oracle 12c)
    #39564044
Wassja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xtender,
Большое спасибо!
Вопрос закрыт.
Но я не ожидал такого...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не работает SQLJ на сервере (Oracle 12c)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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