Частичный дамп

После импорта дампа выполненного в режиме экспорта схемы, нескольких схем и с взаимодействием между ними, приходится прибегать к массовой раздаче раздать привилегии, бездумно и как-то так
select 'GRANT EXECUTE ON '||owner||'.'||object_name||' TO TTX_EPP;'
from all_objects
where owner = 'NCI'
and object_type='FUNCTION';

select 'GRANT SELECT ON '||owner||'.'||object_name||' TO TTX_EPPW;'
from all_objects
where owner = 'TTX_EPP'
and object_type in ('TABLE', 'VIEW');

ORA-01652: unable to extend temp segment by 128 in tablespace TEMP

Достался старый сервер Oracle 9, с такой проблемой «ORA-01652: unable to extend temp segment by 128 in tablespace TEMP» Для изменения параметров табличного пространства пересоздал его, в момент пересоздания пользователей использующих его не должно быть, иначе получим «ORA-25152: TEMPFILE cannot be dropped at this time»
SELECT tablespace_name, file_name, bytes FROM dba_temp_files WHERE tablespace_name = 'TEMP';
ALTER DATABASE TEMPFILE '/u02/oradata/orcl/temp01.dbf' DROP INCLUDING DATAFILES;
ALTER TABLESPACE temp ADD TEMPFILE '/u02/oradata/orcl/temp01.dbf' SIZE 128m AUTOEXTEND ON NEXT 64m MAXSIZE UNLIMITED;
Можно было просто добавить второй файл к пространству.

Век живи, век учись, вариант выделения дробной части

Задача, положить дробное число раздельно в два столбца, воспользуемся оператором взятия остатка от деления %, это Лёха подсказал
drop table #test17;

create table #test17(c1 int, c2 decimal(10,10) /*отдадим все 10 знаков на хранение дробной части*/);

insert into #test17
 select c,c from (select 12.34567 c) tt;
-- для MSSQL Arithmetic overflow error converting numeric to data type numeric.
-- The statement has been terminated.
-- или в MySQL Data truncation: Out of range value for column 'c2' at row 1

insert into #test17
 select c,c%1 from (select 12.34567 c) tt;

select * from #test17;

c1	c2
12	0.3456700000

для Оракла функция mod(c, d)

SQL Server 2005 imitate Oracle keep dense_rank

Замена Ораклевого keep dense_rank на SQL Server 2005
select max(m.id),
       m.someId keep (DENSE_RANK FIRST ORDER BY m.UpdateDate desc) 
from MyTable m 
group by m.someId
Исходные данные
id UpdateDate someId
1  20-01-2012 10
2  20-01-2012 10
3  01-01-2012 10
4  10-02-2012 20
5  01-02-2012 20
6  01-04-2012 30
Результат
2 10
4 20
6 30
И конечно это будет работать и на Оракле.
select m.*
from (select *, row_number() over (partition by m.someid ORDER BY m.UpdateDate desc, m.id desc) as seqnum
      from MyTable m
     ) m
where seqnum = 1
Результат,
группировки снаружи не нужно, группировка идет по окну over (partition by m.someid
max(m.id) заменен сортировкой в окне ORDER BY .... m.id DESC
id	UpdateDate	someId	seqnum
2	2012-01-20 00:00:00.000	10	1
4	2012-02-10 00:00:00.000	20	1
6	2012-04-01 00:00:00.000	30	1