Sql, sqlplus

[sqlplus] disable header in output result

If you use python and sqlplus, some times you need to get only the result and not the header of the colum.

Ex:

session = Popen(['sqlplus64', '-S', connection_string], stdin=PIPE, stdout=PIPE, stderr=PIPE)
str_cmd = """
            select CONTENT from {0}.xyz
            where DOCUMENT_ID like '{1}'; """.format(db_user, document_id)

the result is:

CONTENT
--------------------------------------------------------------------------------
row1=xxxxx
row2=yyyy

To avoid the header CONTENT do

session = Popen(['sqlplus64', '-S', connection_string], stdin=PIPE, stdout=PIPE, stderr=PIPE)
str_cmd = """
            set head off
            select CONTENT from {0}.xyz
            where DOCUMENT_ID like '{1}'; """.format(db_user, document_id)

the result is:

row1=xxxxx
row2=yyyy

see http://stackoverflow.com/a/13039070/4677155

Annunci
Mysql

[Mysql 5.5] ERROR 2006 (HY000) at line 2169: MySQL server has gone away

Questo errore mi è comparso nel momento in cui ho voluto importare un file da 64MB, all’interno della mia nuova instanza di mysql.

In giro le varie soluzione sono molto semplici, basta andare nella cartella di installazione di mysql:

C:\Program Files\MySQL\MySQL Server 5.5

E modificare il file my.cnf nella sezione

[mysqld]
.....
.....
max_allowed_packet = 64M

La voce max_allowed_packet di default è impostata 1M, che è il motivo per cui mysql non riesce ad importare grandi file sql.

Purtroppo con la versione 5.5, ci sono vari file file my-*.cnf per evitare di impazzire, molto semplicemente, è possibile utilizzare MySQL Workbench 5.2 CE nella sezione: Admin -> Configuration -> Option File, cercare la voce max_allowed_packet e modificarla a mano

 

Successivamente riavviare il servizio di mysql, è sarà finalmente possibile importare il file sql.

 

Hibernate, Mysql, ROO, Spring, tc Server
Questa guida vuole essere un piccolo punto di riferimento per la costruzione di un DataSource all’interno dell’ambiente tc Server di Spring Tool Suite, nella fattispecie utilizzando Mysql 5 come DB e Hibernate come Framework per la persistenza.
La Guida è stata testa sia per STS 2.3.2 che per STS 2.3.3

Cambiamenti da effettuare all’interno di:

Server > [SpringSource tc Server v6.0-config | SpringSource tc Developer 2.0 ] (files che si trovano dentro il workspace, creati automaticamente da STS 2.3.2)

context.xml:
All’interno del tag <Context>

<Resource     name="${Nome data source}” 
                auth="Container" 
                type="javax.sql.DataSource" 
                  maxActive="10" 
                  maxIdle="10" 
                  maxWait="10000" 
                  username="root" 
                  password="root" 
                  driverClassName="com.mysql.jdbc.Driver" 
                url="jdbc:mysql://localhost:3306/${nome database utilizzato}"/>

server.xml
Dentro il tag <GlobalNamingResources>

<Resource     name="${Nome data source} 
                auth="Container" 
                type="javax.sql.DataSource" 
                  maxActive="10" 
                  maxIdle="10" 
                  maxWait="10000" 
                  username="root" 
                  password="root" 
                  driverClassName="com.mysql.jdbc.Driver" 
                url="jdbc:mysql://localhost:3306/${nome database utilizzato}"/>

web.xml
Subito dopo il tag <webapp>

    <description>MySQL Test App</description>
      <resource-ref>
          <description>DB Connection Mysql</description>
          <res-ref-name>${nome datasource}</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>

PS: il nome del datasource deve essere sempre lo stesso



Cambiamenti da effettuale all’interno del nostro progetto:

web.xml
Subito dopo il tag <webapp>

    <description>MySQL Test App</description>
      <resource-ref>
          <description>DB Connection Mysql</description>
          <res-ref-name>${nome datasource}</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>

PS: il nome del datasource deve essere sempre lo stesso


Nella cartella che contiene il server (es: /opt/springsource/tc server 6)

Inserire i driver JDBC connector nella cartella TOMCAT\lib (nel caso di Developer 2)

Inserire i driver JDBC connector nelle cartelle webapps-lib e lib (nel caso di Server v6.0)

Hibernate, Mysql

[Hibernate + mysql] Errore “Found longblob expected blob”

Se trovate l’errore segnalato in grassetto in cui hibernate va in errore visto che si aspetta di trovare nella tabella un campo LONGBLOB, mentre invece la classe entity definisce un BLOB.

GRAVE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘transactionManager’ defined in file [/opt/STS 2.3.2/tc-server-6.0.20.C/wtpwebapps/GestioneFIR/WEB-INF/classes/META-INF/spring/applicationContext.xml]
….
….
Caused by: org.hibernate.HibernateException: Wrong column type in gestione_fir.categoria for column regolamento_xml.
Found: longblob, expected: blob at org.hibernate.mapping.Table.validateColumns(Table.java:261)

Linux, PostgreSql, Sql

[PostgreSql] Installazione e primo utilizzo

Un ottimo database gratuito e proprio Postgresql, ormai ultimo baluardo da quando le sorti di Mysql sono incerte dopo l’acquisizione di Oracle.

Per installarlo è utilizzarlo al meglio su ubuntu 9.10, vi sono due post ottimi che spiegano al meglio le procedure da eseguire.

https://help.ubuntu.com/community/PostgreSQL [Inglese]

http://ilpinguinofurioso.wordpress.com/2007/08/08/installare-postgresql-su-ubuntu-704-feisty-fawn/ [Italiano]