Сравнение двух строк с "= =": когда это будет работать?

Скажите, что у вас есть три строки,

String s1 = "string one";
String s2 = new String("string one");
String s3 = "string one";

Я знаю, что это правда, что s1 = = s2 является false , но я где-то прочитал, что s1 = = s3 является true . Это правильно? Почему бы и почему нет?

-121--1216247- Ошибка материализованного представления Oracle: включен код При запуске следующего кода на Oracle 10g: drop materialized view test4; сбросить проверку материализованного вида 3; испытание капле2; испытание капле1; создание таблицы тест1 (x1 varchar2 (1000), ограничение...

При запуске следующего кода в Oracle 10g:

drop materialized view test4;
drop materialized view test3;
drop table test2;
drop table test1;

create table test1
(
  x1 varchar2(1000),
  constraint test1_pk primary key (x1)
);

create materialized view log on test1 with sequence;

create table test2
(
  x2 varchar2(1000),
  constraint test2_pk primary key (x2)
);

create materialized view log on test2 with sequence;

create materialized view test3
refresh complete on demand 
as
(
  select x1 from test1
  union all
  select null from dual where 0 = 1
);

alter table test3 add constraint test3_pk primary key (x1);

create materialized view log on test3 with sequence;

create materialized view test4
refresh fast on commit
as
(
  select t1.rowid as rid1, t2.rowid as rid2, t1.x1 u1, t2.x2
  from test3 t1, test2 t2
  where t1.x1 = t2.x2
);

я получаю эту ошибку при попытке создать материализованное представление test4 :

SQL Error: ORA-12053: this is not a valid nested materialized view  
12053. 00000 -  "this is not a valid nested materialized view"  
*Cause:    The list of objects in the FROM clause of the definition of this  
           materialized view had some dependencies upon each other.  
*Action:   Refer to the documentation to see which types of nesting are valid.

Я не понимаю, как какие-либо объекты в предложении FROM зависят друг от друга.

Как это сделать? В настоящее время я могу подумать только о том, чтобы заменить test3 обычной таблицей и вручную удалить и обновить данные. Этот подход работает, но кажется, что это немного взлом.

В качестве альтернативы (и, возможно, предпочтительнее) я хотел бы увидеть пример, где можно иметь две таблицы, и объединить их в материализованное представление, где одна из базовых таблиц обновляется массово (и не нуждается в отражении в материализованном представлении) но другие обновления должны быть отражены в материализованном представлении (т.е. это "половина" быстрого обновления при фиксации и половина полного обновления по требованию ). Я попытался использовать refresh force , но при использовании EXECUTE DBMS_MVIEW.EXPLAIN_MVIEW () я не обнаружил доказательств доступности fash refresh при фиксации. Я также хотел бы сделать это с union all s также.

13
задан Clinton 20 September 2011 в 06:19
поделиться