Boa tarde galera.
Gostaria de sabe se alguém conhece uma forma de ver se uma tabela long raw tem valor. Tenho uma tabela onde algumas fotos foram vinculadas no campo long raw, porém preciso saber quantos vínculos existem.
Utilizo o Pl/Sql Developer.
Obrigado.
Como saber se uma coluna Long raw esta contem valor?
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
O ideal é nunca usar LONG RAW, converter tudo pra BLOB.
Mas se não tem como, acho que você terá que fazer uma function pra isso, pois não tem como usar IS NULL, LENGTH nesse tipo de campo. (nem mesmo DBMS_LOB.getlength)
Tente algo assim pra saber o TAMANHO:
Aqui tem uma função em JAVA que faz isso:
http://stackoverflow.com/questions/5497 ... a-long-raw
Chamada:
Se acharem uma forma melhor, poste aí !!!
Mas se não tem como, acho que você terá que fazer uma function pra isso, pois não tem como usar IS NULL, LENGTH nesse tipo de campo. (nem mesmo DBMS_LOB.getlength)
Tente algo assim pra saber o TAMANHO:
DECLARE
LENGTH_VAR NUMBER;
CURSOR T_CURSOR IS
SELECT campo FROM SYS.IDL_UB1$ WHERE ... ;
T_VAL T_CURSOR%ROWTYPE;
BEGIN
OPEN T_CURSOR;
FETCH T_CURSOR INTO TOY_VAL;
CLOSE T_CURSOR;
LENGTH_VAR := LENGTH(T_VAL.campo);
DBMS_OUTPUT.PUT_LINE('Tamanho: '||LENGTH_VAR);
END;
http://stackoverflow.com/questions/5497 ... a-long-raw
SQL> CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "Raw" AS
2 import java.io.*;
3 import java.sql.*;
4 import oracle.jdbc.driver.*;
5
6 public class Raw {
7
8 public static int getLength(int pk) throws SQLException,IOException {
9
10 Connection conn = new OracleDriver().defaultConnection();
11
12 PreparedStatement ps = conn.prepareStatement
13 ( "SELECT my_long_raw_column FROM my_table WHERE id = ?" );
14 ps.setInt( 1, pk);
15 ResultSet rs = ps.executeQuery();
16
17 int len = 0;
18 if (rs.next()) {
19 InputStream is = rs.getBinaryStream(1);
20 int nb = is.read(new byte[1024]);
21 while (nb>0) {
22 len += nb;
23 nb = is.read(new byte[1024]);
24 }
25 } else
26 len = -1;
27
28 return len;
29 }
30 }
31 /
Java created
SQL> CREATE OR REPLACE
2 FUNCTION get_lr_length(p_id NUMBER) RETURN NUMBER
3 AS LANGUAGE JAVA
4 NAME 'Raw.getLength(int) return int';
5 /
Function created
SQL> select get_lr_length(id) from my_table;
GET_LR_LENGTH(ID)
-----------------
9
-
- Rank: Programador Sênior
- Mensagens: 54
- Registrado em: Qui, 18 Set 2008 10:22 pm
- Localização: São Paulo - SP
Moloukos Rox
O problema é o seguinte, tenho duas bases de dados distintas, porém com a mesma tabela, e nessa tabela tem um campo long raw.
Tentei fazer o export e depois usar o import de uma base de dados para outra, porém ele não leva a mesma imagem de uma base para outra.
Usei os recursos import/export do pl/sql Developer.
Alguém sabe uma maneira de fazer isso ou não tem jeito mesmo???
Tentei fazer o export e depois usar o import de uma base de dados para outra, porém ele não leva a mesma imagem de uma base para outra.
Usei os recursos import/export do pl/sql Developer.
Alguém sabe uma maneira de fazer isso ou não tem jeito mesmo???
-
- Moderador
- Mensagens: 1177
- Registrado em: Qui, 15 Out 2009 10:28 am
- Localização: Recife
cara, usa o exp/imp do oracle,
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes