Как я тестирую, если столбец равняется empty_clob () в Oracle?

Это довольно типично. Моя система занимает около 20 секунд от запуска spark-submit до получения SparkContext.

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

Я занимаюсь этим с помощью своего приложения. Я использую http4s и превращаю свой драйвер в веб-сервер.

17
задан Hank Gay 6 February 2009 в 18:15
поделиться

3 ответа

При попытке выполнить в МН сравнении / SQL, можно просто протестировать равенство, как решение Igor делает

SQL> ed
Wrote file afiedt.buf

  1  DECLARE
  2     dummy  clob;
  3  BEGIN
  4       dummy := empty_clob();
  5        IF dummy = empty_clob() THEN
  6           dbms_output.put_line( 'Dummy is empty' );
  7        ELSE
  8           dbms_output.put_line( 'Dummy is not empty' );
  9        END IF;
 10* END;
SQL> /
Dummy is empty

PL/SQL procedure successfully completed.

, При попытке сделать это в SQL, thougyh, необходимо использовать функцию DBMS_LOB.COMPARE. Столбец LOB в таблице является действительно локатором LOB (т.е. указатель), поэтому о чем Вы действительно заботитесь, то, что значение, на которое указывает LOB, сопоставимо со значением, на которое указывает локатор LOB, возвращенный EMPTY_CLOB () функция.

SQL> desc bar
 Name                                      Null?    Type
 ----------------------------------------- -------- ------------------------

 FOO                                                CLOB

SQL> insert into bar values ('123');

1 row created.

SQL> insert into bar values( empty_clob() );

1 row created.

SQL> insert into bar values( empty_clob() );

1 row created.

SQL> ed
Wrote file afiedt.buf

  1  select count(*)
  2    from bar
  3*  where dbms_lob.compare( foo, empty_clob() ) = 0
SQL> /

  COUNT(*)
----------
         2

SQL> ed
Wrote file afiedt.buf

  1  select count(*)
  2    from bar
  3*  where dbms_lob.compare( foo, empty_clob() ) != 0
SQL> /

  COUNT(*)
----------
         1
16
ответ дан 30 November 2019 в 03:34
поделиться

Вы просто желаете проверить на CLOB, который не имеет никакой длины? В то время как не точно, что Ваше выяснение, это - в основном то же самое?

select *
  from bar
 where dbms_lob.getlength(foo) = 0;

Вот полный тест:

SQL> create table bar (foo clob);

Table created.

SQL> insert into bar values (empty_clob());

1 row created.

SQL> select *
  2    from bar
  3  where dbms_lob.getlength(foo) = 0;

FOO
--------------------------------------------------------------------------------
17
ответ дан 30 November 2019 в 03:34
поделиться

что-то вроде этого должно работать на инициализацию:

DECLARE
   dummy  clob;
   dummy2 clob;
BEGIN
     dummy := empty_clob();
      IF dummy = empty_clob() THEN
         dummy2 := dummy;
      END IF;
END;
3
ответ дан 30 November 2019 в 03:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: