Pregunta

¿Por qué zend_db_select no recoge el esquema del archivo de configuración? ¿Y cómo puedo arreglarlo?

Configuración:

resources.database.adapter = "Oracle"
resources.database.params.dbname = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = x.x.x.x)(PORT = 1521)) (CONNECT_DATA = (SID = xx)))"
resources.database.params.username = ''
resources.database.params.password = ''
resources.database.params.trace =
resources.database.params.schema = YYY

Seleccione:

$select->from(
                array('pm' => 'tab_1'),
                array(
                    'pm_id',
                    'status',
                    'pm_status',
                    'pm_tabno',
                    'pm_cardno',
                    'pm_start_dt',
                    'pm_endtk_dt',
                    'pm_signature',
                    'pm_servrec_no',
                    'pm_isdirector'
                )
            )
            ->joinLeft(
                array('pa' => 'tab_2'),
                'pm.pm_id = pa.pa_pm',
                array(
                    'PRL_NAME',
                    'PRF_NAME',
                    'PRS_NAME'
                )
            )
            ->joinLeft(
                array('ddpst' => 'tab_3'),
                'pm.status = ddpst.dic_value',
                'dic_name'
            )
            ->joinLeft(
                array('pst' => 'tab_4'),
                'pm.pm_status = pst.dic_value',
                'dic_sname'
            )
            ->where(
                'pa.status = 1'
        );

resultado:

SELECT z2.*
            FROM (
                SELECT z1.*, ROWNUM AS "zend_db_rownum"
                FROM (
                    SELECT pm.pm_id, pm.status, pm.pm_status, pm.pm_tabno, pm.pm_cardno, pm.pm_start_dt, pm.pm_endtk_dt, pm.pm_signature, pm.pm_servrec_no, pm.pm_isdirector, pa.PRL_NAME, pa.PRF_NAME, pa.PRS_NAME, ddpst.dic_name, pst.dic_sname FROM tab_1 pm
 LEFT JOIN tab_2 pa ON pm.pm_id = pa.pa_pm
 LEFT JOIN tab_3 ddpst ON pm.status = ddpst.dic_value
 LEFT JOIN tab_4 pst ON pm.pm_status = pst.dic_value WHERE (pa.status = 1) ORDER BY PRL_NAME ASC
                ) z1
            ) z2
            WHERE z2."zend_db_rownum" BETWEEN 1 AND 50
¿Fue útil?

Solución 2

RSOLVED anulando zend_db_select (_Join () para agregar esquema predeterminado) + anulación de zend_db_adapter (para devolver la propia selección)

Otros consejos

El esquema no parece ser un parámetro válido aceptado por zend_application_resrouce_db o zend_db_adapter_oracle. Puede establecer el esquema de sus clases DBTABLE si está utilizando zend_db_table_abstract para definir sus DBTables.

Ver Ejemplo #4.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top