http://www.perlmonks.org?node_id=961956


in reply to Re: Dancer + SQL::Translator
in thread Dancer + SQL::Translator

I saw that error creep up many times when i was trying to put this together. Looks like more will be necessary than simply replacing the name of the database vendor/driver. Take a look at the value for $sql and see what part(s) are invalid for Oracle. As for GraphViz2, normally i would jump up to upgrade but in this case i just need something quick and dirty to help me visualize my problem that needs to be solved. Thanks for your time. :)

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)

Replies are listed 'Best First'.
Re^3: Dancer + SQL::Translator
by mje (Curate) on Mar 28, 2012 at 12:18 UTC

    It is the double bracketed values in the timestamp definition.

    CREATE TABLE "ACCOUNT" ( "ACCOUNT_ID" number(38) NOT NULL, "DATE_TIME_UTC" timestamp(6)(11), "CURRENCY_ID" number(38) NOT NULL, "NAME" varchar2(128) NOT NULL, "BALANCE" number(14) NOT NULL, "ACCOUNT_TYPE_ID" number(38) NOT NULL, "CREATED_BY_USER" varchar2(128), "CREATED_DATE_TIME_UTC" timestamp(6)(11), "MODIFIED_BY_USER" varchar2(128), "MODIFIED_DATE_TIME_UTC" timestamp(6)(11) );

    When the table was originally created those columns were only timestamps with no precision.

      I spoke to one of the maintainers of SQL::Translator and after a suggestion from him I arrived at the following which avoids the problem above:

      my $translator = SQL::Translator->new( from => 'DBI', to => 'GraphViz', parser_args => { dsn => "dbi:Oracle:xxx", db_user => 'xxx', db_password => 'xxx', producer_args => { output_type => 'png', out_file => 'out.png', natural_join => 1, width => 30.0, height => 30.0, #fontsize => 10 }, }, ); my $sql = $translator->translate( data => '');

      unfortunately our schema is quite large and the above produces a png which although looks like it might be correct is unreadable - everything is too small. The png output is limited in size apparently. I tried generating a postscript file as well but I don't seem to be able to produce one of those - nothing is output. Maybe I don't have whatever GraphViz needs to generate postscript.