Самый легкий способ сделать это должно открыть базу данных непосредственно и использовать эти .dump
команда, вместо того, чтобы присоединить его после вызова SQLite 3 инструмента оболочки.
Так... (принимают, Ваше приглашение командной строки ОС является $) вместо $sqlite3
:
sqlite3> ATTACH database.sqlite as "attached"
Из Вашей командной строки ОС, откройте базу данных непосредственно:
$sqlite3 database.sqlite
sqlite3> .dump
вы можете проверить, есть ли в вашем сеансе строка в V $ TRANSACTION
(очевидно, что для этого требуется привилегия чтения):
SQL> SELECT COUNT(*)
FROM v$transaction t, v$session s, v$mystat m
WHERE t.ses_addr = s.saddr
AND s.sid = m.sid
AND ROWNUM = 1;
COUNT(*)
----------
0
SQL> insert into a values (1);
1 row inserted
SQL> SELECT COUNT(*)
FROM v$transaction t, v$session s, v$mystat m
WHERE t.ses_addr = s.saddr
AND s.sid = m.sid
AND ROWNUM = 1;
COUNT(*)
----------
1
SQL> commit;
Commit complete
SQL> SELECT COUNT(*)
FROM v$transaction t, v$session s, v$mystat m
WHERE t.ses_addr = s.saddr
AND s.sid = m.sid
AND ROWNUM = 1;
COUNT(*)
----------
0
SELECT * FROM V$TRANSACTION
WHERE STATUS='ACTIVE';
См .: http://forums.oracle.com/forums/thread.jspa?threadID=691061
Обычно я использую этот запрос,
select s.sid
,s.serial#
,s.username
,s.machine
,s.status
,s.lockwait
,t.used_ublk
,t.used_urec
,t.start_time
from v$transaction t
inner join v$session s on t.addr = s.taddr;