<br><br><div class="gmail_quote">2009/6/16 Thiago Rondon <span dir="ltr"><<a href="mailto:thiago@aware.com.br">thiago@aware.com.br</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Eu não disse que foi o Oracle que retornou, eu disse que você esta usando Oracle pelo código. (*nextval no resultset->create) ;-)<br>
</blockquote><div><br>Eu entendi! Na verdade só quis deixar claro q não era o Oracle q tava me retornando o erro... :)<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Procurando pelo código do DBIx Class do Oracle, encontrei:<br>
(<a href="http://cpansearch.perl.org/src/RIBASUSHI/DBIx-Class-0.08103/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm" target="_blank">http://cpansearch.perl.org/src/RIBASUSHI/DBIx-Class-0.08103/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm</a>)<br>
<br>
Veja se ler esta função do DBIx Class te ajuda, o problema ainda me parece em relação a sequencia, talvez como ela esta sendo invocada ou algo assim.</blockquote><div><br></div><div><br>Eu achei essa função abaixo também. Mas basta declarar a sequence, como demonstrado no link q vc mandou acima. Desse jeito:<br>
<br><code><br><br>__PACKAGE__->add_columns(<br> "processo_id" => { sequence => 'some_sequence', auto_nextval => 1 },<br> "fornecedor_id",<br> { data_type => "INTEGER", is_nullable => 0, size => undef },);<br>
<br>__PACKAGE__->set_primary_key("processo_id");<br>__PACKAGE__->sequence('seq_processo');<br><br><br></code><br><br><br>A função abaixo foi necessária.<br><br><br><br>Valeu!<br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
sub _dbh_get_autoinc_seq {<br>
my ($self, $dbh, $source, $col) = @_;<br>
<br>
# look up the correct sequence automatically<br>
my $sql = q{<br>
SELECT trigger_body FROM ALL_TRIGGERS t<br>
WHERE t.table_name = ?<br>
AND t.triggering_event = 'INSERT'<br>
AND t.status = 'ENABLED'<br>
};<br>
<br>
# trigger_body is a LONG<br>
$dbh->{LongReadLen} = 64 * 1024 if ($dbh->{LongReadLen} < 64 * 1024);<br>
<br>
my $sth;<br>
<br>
# check for fully-qualified name (eg. SCHEMA.TABLENAME)<br>
if ( my ( $schema, $table ) = $source->name =~ /(\w+)\.(\w+)/ ) {<br>
$sql = q{<br>
SELECT trigger_body FROM ALL_TRIGGERS t<br>
WHERE t.owner = ? AND t.table_name = ?<br>
AND t.triggering_event = 'INSERT'<br>
AND t.status = 'ENABLED'<br>
};<br>
$sth = $dbh->prepare($sql);<br>
$sth->execute( uc($schema), uc($table) );<br>
}<br>
else {<br>
$sth = $dbh->prepare($sql);<br>
$sth->execute( uc( $source->name ) );<br>
}<br>
while (my ($insert_trigger) = $sth->fetchrow_array) {<br>
return uc($1) if $insert_trigger =~ m!(\w+)\.nextval!i; # col name goes here???<br>
}<br>
$self->throw_exception("Unable to find a sequence INSERT trigger on table '" . $source->name . "'.");<div class="im"><br>
}<br>
<br>
</div></blockquote></div><br>-- <br>André Garcia Carneiro<br>Analista/Desenvolvedor Perl<br><br>