viernes, 19 de octubre de 2007

Guía de Funciones de Oracle

Guía de Funciones de Oracle.

ABS(
n) Absolute value of number
ACOS(n) arc cosine of n
ADD_MONTHS(date,num_months)
Returns date + num_months
ASCII(char) Converts char into a decimal ascii code
ASIN(n) arc sine of n.
ATAN(n) arc tangent of n.
ATAN2(n.m) arc tangent of n and m.
AVG([DISTINCT]n)
Averge value of 'n' ignoring NULLs

BETWEEN value AND value
Where 'x' between 25 AND 100
BFILENAME('directory','filename')
Get the BFILE locator associated with a physical LOB binary file.

CASE Group the data into sub-sets.
CEIL(n) Round n up to next whole number.
CHARTOROWID(char)
Converts a Char into a rowid value.
CHR(n) Character with value n
CONCAT(s1,s2) Concatenate string1 and string2
CONVERT(char_to_convert, new_char_set, old_char_set)
Convert character sets
COS(n) Cosine of number
COSH(n) Hyperbolic Cosine of number
COUNT(*) Count the no of rows returned
COUNT([DISTINCT] expr)
Count the no of rows returned by expr

DECODE IF x THEN return y ELSE return z
DENSE_RANK Calculate the rank of a value in a group
DEREF(e) Return the object reference of argument e.
DUMP(expr,fmt[,start,length])
Convert to dec/hex/oct and display char set

EMPTY_BLOB Return an empty LOB locator (use to empty a column or variable)
EMPTY_CLOB Return an empty LOB locator (use to empty a column or variable)
EXISTS Return TRUE if a subquery returns at least one row
EXP(n) Exponential (e to 'n'th power)

FLOOR(n) Round n down to the next whole number.

GREATEST(expression, expression...)
Returns the largest in a list of expressions.
GROUPING Grouping for superaggregate rows=NULL

HEXTORAW(char) Convert char containing hex digits to a raw value.

IN (list of comma separated values)
Effectively a shorthand for ['x' = y OR 'x' = z...] i.e.
Where 'x' IN ('sales','marketing','recruitment')
INITCAP(char) String with Initial Capitals
INSTR(str, chars[,s[,n]])
Find the 'n'th occurence of 'chars' in 'str'
Starting at position 's'
n and s default to 1
INSTRB (str, chars[,s[,n]])
The same as INSTR, except that 's' and the return value are expressed in bytes,
use for double-byte char sets
IS [NOT] NULL Check for NULL (empty) values
Where 'x' IS NULL;

LAST_DAY(date)Returns the last day of month in Date
LEAST(expression, expression...)
Returns the smallest in a list of expressions
LENGTH(char) Returns the number of characters in char
LENGTHB(char) Returns the number of bytes in char (use for double-byte char sets)
LIKE wildcard/value
Wildcards are [% = any chars] [ _ = any one char]
Where 'x' LIKE 'smith%' [will find 'Smithson']
Where 'x' LIKE 'smith_' [will find 'Smithy']
LN(n) Natural Log of n, where n>0
LOG(b,n) log of n, base b
LOWER(char) Returns character string in lowercase
LPAD(char, n[,PadChar])
Left Pad char with n spaces [or PadChars]
LTRIM(char[,set])
Left Trim char - remove leading spaces [or char set]

MAKE_REF(table,key)
Create a REF to a row of an OBJECT view/table
MAX([DISTINCT] expr)
Maximum value returned by expr
MIN([DISTINCT] expr)
Minimum value returned by expr
MOD(x,y) Remainder of x divided by y
MONTHS_BETWEEN(end_date, start_date)
Number of months between the 2 dates (integer)

NEW_TIME(date, zone1, zone2)
Convert between GMT and US time zones (but not CET)
NEXT_DAY(date,day_of_week)
'12-OCT-01','Monday' will return the next Mon after 12 Oct
NLS_CHARSET_DECL_LEN (bytecount,charset)
Returns the declaration width (no of chars) of an NCHAR column
NLS_CHARSET_ID(varchars)
Returns the char set ID given a charset name
NLS_CHARSET_NAME(charset_id)
Returns the char set name given a charset id
NLS_INITCAP(char[,'NLS_SORT = sort_sequence'])
Returns char in Initial Caps, using an NLS sort_sequence
either the session default or specified directly
NLS_LOWER(char[,'NLS_SORT = sort_sequence'])
Returns char in lower case, using an NLS sort_sequence
either the session default or specified directly
NLSSORT(char[,'NLS_SORT = sort_sequence'])
Return the string of bytes used to sort char, using an NLS sort_sequence
either the session default or specified directly
NLS_UPPER(char[,'NLS_SORT = sort_sequence'])
Returns char in UPPER case, using an NLS sort_sequence
either the session default or specified directly
NVL(expression, value_if_null)
If expression is null, returns value_if_null; if expression is not null, returns expression.
The arguments can have any datatype (Oracle will perform implicit conversion where needed).
PERCENT_RANK Calculate the percent rank of a value in a group.
POWER(m,n) m raised to the nth power

RANK Calculate the rank of a value in a group
RAWTOHEX(raw) Convert raw to a character value containing its hex equivalent
REF(table_alias)
Returns a REF value for an object instance (bound to the variable or row.)
The table alias (correlation variable) is associated with
one row of an object table or an object view in an SQL statement.
REFTOHEX(ref) Convert ref (object type) to a char value containing its hex equivalent.
REPLACE(char, search_str[, replace_str])
ANSI alternative to decode() Replace every occurrence of search_str
with replace_str, replace_str defaults to null.
ROUND(n,d) n rounded to d decimal places (d defaults to 0)
ROUND(date,fmt)
date rounded to fmt
ROWIDTOCHAR(rowid)
Convert a rowid value to VARCHAR2
ROW_NUMBER Assign a unique number to each row of results.
RPAD(char, n[,PadChar])
Right Pad char with n spaces [or PadChars]
RTRIM(char[,set])
Right Trim char - remove trailing spaces [or char set]

SIGN(n) positive = 1, zero = 0, negative = -1
SIN(n) Sine of n in Radians
SINH(n) Hyperbolic Sine of n in Radians
SOUNDEX(char) Returns a char value representing the sound of the words
SQRT(n) Square Root (returns NULL for negative no's)
STDDEV([DISTINCT] n)
Standard deviation of n
SUBSTR(char, s[,l])
A substring of char, starting at character s, length l
SUBSTRB(char, s[,l])
A substring of char, starting at character s, length l
The same as SUBSTR, except that 's', 'l' and the return value are expressed in bytes,
use for double-byte char sets
SUM([DISTINCT] n)
Sum of values of n, ignoring NULLs
SYS_CONTEXT('namespace','attribute_name')
Examine the package associated with the context namespace
Possible attributes are: NLS_TERRITORY, NLS_CURRENCY, NLS_CALENDAR
NLS_DATE_FORMAT, NLS_DATE_LANGUAGE, NLS_SORT, SESSION_USER, CURRENT_USER
CURRENT SCHEMAID,SESSION_USERID, CURRENT_USERID, CURRENT_SCHEMA
note: CURRENT_USER may be different from SESSION_USER within a stored procedure
(e.g an invoker-rights procedure).
SYS_CONTEXT ('USERENV','IP_ADDRESS')
SYS_GUID() Returns a globally unique identifier (16 byte RAW value)
SYSDATE The current system date & time

TAN(n) Tangent of n in Radians
TANH(n) Hyperbolic tangent of n in Radians
TO_CHAR Convert to character String
TO DATE Convert to date value
TO_LOB(long) Convert LONG values to CLOB or NCLOB values
or convert LONG RAW values to BLOB values
Use only as part of an "INSERT INTO ... SELECT..." subquery.
TO_MULTI_BYTE(char)
Convert single-byte char to multi-byte char.
TO_NUMBER Convert to numeric format
TO_SINGLE_BYTE(char)
Convert multi-byte char to single-byte char.
TRANSLATE('char','search_str','replace_str')
Replace every occurrence of search_str with replace_str
unlike REPLACE() if replace_str is NULL the function returns NULL
TRANSLATE (text USING charset)
Convert text into a specific character set
Use this instead of CONVERT() if either the input or output datatype
is NCHAR or NVARCHAR2.
TRIM(LEADING|TRAILING|BOTH trim_char FROM trim_source)
Returns trim_source as a VARCHAR2 with leading/trailing items removed
trim_char defaults to a space ' ' but may be numeric or char 'A'
TRUNC(i,d) i truncated to d decimal places (d defaults to 0)
TRUNC(date,fmt)
date truncated to nearest fmt

UID User id - unique number
UPPER(char) Returns Chars in uppercase
USER Returns the current Username
USERENV('option')
Can return any of the options: ENTRYID, SESSIONID,
TERMINAL, LANGUAGE, ISDBA, LANG, INSTANCE, CLIENT_INFO

VALUE(correlation_variable)
Return the object instance for a row of an object table
as associated with the correlation_variable (table alias)
VARIANCE([DISTINCT] n)
Variance of n, ignoring NULLs
VSIZE(expr) Value Size - returns the number of bytes used by each row of expr.

Robado de aqui

Salu2

Objetos bloqueados en Oracle

Para obtener los objetos bloqueados de una Base de Datos en Oracle, basta ejecutar la siguiente consulta:

SELECT
decode(L.TYPE,'TM','TABLE','TX','Record(s)') TYPE_LOCK,
decode(L.REQUEST,0,'NO','YES') WAIT,
S.OSUSER OSUSER_LOCKER,
S.PROCESS PROCESS_LOCKER,
S.USERNAME DBUSER_LOCKER,
O.OBJECT_NAME OBJECT_NAME,
O.OBJECT_TYPE OBJECT_TYPE,
concat(' ',s.PROGRAM) PROGRAM,
O.OWNER OWNER
FROM v$lock l,dba_objects o,v$session s
WHERE l.ID1 = o.OBJECT_ID
AND s.SID =l.SID
AND l.TYPE in ('TM','TX');

La ejecución nos muestra lo siguiente:

TYPE_LOCKWAITOSUSER_LOCKERPROCESS_LOCKERDBUSER_LOCKEROBJECT_NAMEOBJECT_TYPEPROGRAMOWNER
1TABLENOAdministrador3940:3948EXPERTTA_EMP_CATEGOTABLE plsqldev.exeEXPERT

Salu2

Instalar paquetes en Solaris

Solaris maneja sus paquetes, así como Debian maneja los .deb y Red Hat los .rpm, para ya no tener que compilar los fuentes.

Existe una pagina de mucha utilidad para bajar paquetes compilados para Solaris.

http://sunfreeware.com/

ahora para instalar un paquete tenemos que loguearnos como root y usar un programa llamado pkgadd, por ejemplo; si queremos instalar ethereal, haríamos lo siguiente:

# pkgadd -d ethereal-0.10.7-sol10-intel-local

The following packages are available:
1 SMCethr ethereal
(intel) 0.10.7

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:

NOTA: SMCethr es el nombre del paquete.

Si deseamos ver la información de ese paquete ejecutamos:

# pkginfo SMCethr
application SMCethr ethereal

Y si deseamos eliminar el paquete ejecutamos lo siguiente:

# pkgrm SMCethr

The following package is currently installed:
SMCethr ethereal
(intel) 0.10.7

Do you want to remove this package? [y,n,?,q]


Salu2

Diagnósticos en Solaris

Algunos comandos para hacer diagnósticos en Solaris.

# prtdiag
prtdiag: not implemented on i86pc

NOTA: prtdiag no está implementado para arquitectura x86.

# prtconf
System Configuration: Sun Microsystems i86pc
Memory size: 2048 Megabytes
System Peripherals (Software Nodes):

i86pc
scsi_vhci, instance #0
isa, instance #0
motherboard (driver not attached)
pci, instance #0
pci108e,5347 (driver not attached)
pci108e,5347 (driver not attached)
pci108e,5347 (driver not attached)
pci108e,5347, instance #0
keyboard, instance #5
mouse, instance #7
pci108e,5347, instance #0
pci108e,5347, instance #0
pci-ide, instance #0
ide, instance #0
sd, instance #0
ide (driver not attached)
pci-ide, instance #1
ide, instance #2
cmdk, instance #0
ide, instance #3
cmdk, instance #1
pci-ide, instance #2
ide (driver not attached)
ide (driver not attached)
pci10de,5c, instance #0
display, instance #0
pci1106,3044, instance #0
pci108e,5347, instance #0
pci10de,5d, instance #1
pci10de,5d, instance #2
pci10de,5d, instance #3
pci10de,5d, instance #4
pci1022,1100 (driver not attached)
pci1022,1101 (driver not attached)
pci1022,1102 (driver not attached)
pci1022,1103 (driver not attached)
iscsi, instance #0
pseudo, instance #0
xsvc, instance #0
options, instance #0
objmgr, instance #0
used-resources (driver not attached)
cpus (driver not attached)
cpu, instance #0 (driver not attached)

Salud

Directorio /proc

en /proc se guardan ciertas configuraciones, entre éstas, las características de los procesadores en el archivo cpuinfo.

$ cd /proc
$ vi cpuinfo

processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 6
model name : Intel(R) Pentium(R) D CPU 3.00GHz
stepping : 2
cpu MHz : 2999.991
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 6
wp : yes

Salu2.

lunes, 8 de octubre de 2007

De la vieja guardia (F. Delgadillo)

Yo soy la vieja guardia
aunque no viví sus glorias
yo comencé a oír la radio
cuando ya se había hecho historia.

Cuando las bandas de pop
se llevaban ovaciones
de las que aún resuenan a ecos
en las viejas grabaciones.

Y me enterneció el amor
en una noche serena
en mi escondite añorado
que un día fue el autocinema.

Yo conozco mil historias
de la calle y sus rumores
de los pleitos de banquera
con merecidos honores.

Y miré algunos mayores
crecer bajo su leyenda
en las riñas de pandillas
con navajas y cadenas

Y después de aquel arrojo
se convertía en delincuencia
más de un bravo conocido
saboreó las consecuencias
que hace la ley de los puños
y fumar la hierbabuena.

Para saltar la alambrada
para brincar esta cerca
y ese asalto a mano armada
Que jamás valía la pena
a veces creo que mi entorno
fue el que me hizo observador
aprendía del error de otros
y tampoco fui mejor.

Siempre estoy necesitando
un sueño en que sobrevivir
como si fuera el muchacho
que no para de reír.

Cuando volaba a la avenida
bajando en mi bicicleta
como sí en la esquina nunca
me esperara una sorpresa.

Siempre fue cuestión de suerte
y hoy tampoco sé en que acaba
la vida de los que entienden
de contar casos que pasan.

Hoy no vuelo en mi manubrio
hoy mi guitarra me eleva
y me hace ocupar las dos manos
no hago otra cosa con ellas
que aferrarme a esta guitarra
como el fulgor a su estrella
como el soldado al fusil
y en noches como la de hoy
como un borracho a su botella.

Yo soy de la vieja guardia
de la canción de protesta
de los conciertos de pop
con una guitarra vieja.

viernes, 5 de octubre de 2007

Del respirar de las piedras (Edel Juárez)

Del respirar de las piedras te hablo,
de los cántaros,
de los ríos secos en que he nadado
hasta hallarte sola y amaneciendo,
como árbol de frutas secas.

Te hablo desde la tierra,
desde las hojas,
desde el pan que habita
en la corteza de ciertas semillas
de ciertas ideas.

De horas sin sueño,
de días sin hambre,
de noches sin lunes próximo,
sin mañana distante.

Te escribo desde las tardes
que nuestros pasos amaron;
te escribo y te dejo un beso
con el sabor del aire entre eucaliptos.

Escribo por no perderlos,
por no dejarlos,
por no olvidarme que a veces,
tal vez sin quererlo,
me estés escuchando.

Me gustaría tenerte desnuda (Edel Juárez)

Me gustaría tenerte desnuda ahora
y poder hablar de tu cuerpo
de la distancia exacta que hay entre tus senos
me gustaría poder contarles de tus piernas
ese par de tijeras con las que has podado mis pudores
con las que abrazaste mi inocencia

Hablarles de tus manos,
y de las caricias que estas encierran
de tus ojos y la paz con la que nado en ellos
de tus caderas firmes y de tu vientre plano
de tu sexo, ese eterno manantial de mis pecados,
de tus pies que marcan mis pisadas
de tus uñas y como dibujan con la sangre de mi espalda
de tu lengua como ágil oponente de mis dientes
y de toda tu cuando estas desnuda…

Me gustaría tenerte desnuda ahora aquí
para no contarles nada.

Mejor la cama destendida (Edel Juárez)

Mejor la cama destendida que tu ausencia a mi lado,
Mejor sus besos que tu nombre en mi boca;
Y yo primavera y otoño en menos de una hora,
Mientras la conozco, se va uniendo a mi olvido.

Esto es un tornillo, una espiral, un ciclo…
Esto de no tenerte y buscarte en pechos desconocidos,
En un nombre que no recuerdo,
En un vientre al que no vuelvo.

Es un punto más a la lista de fracasos
Que guardo en el cajón,
Junto a tu recuerdo…

Si Dios fuera Mujer (Edel Juárez)

Si existiera un Dios
preferiría que fuera mujer
y así hablarle de tú y de ti
y que me aconsejara
preferiría que fuera mujer
y que fuera mi amiga
y que su sexo no fuera barrera
sino pretexto
que fuera mujer y amiga
de aquellas que dan la vida
cada vez que lo solicitas
que fuera mujer y amiga
para que me escuchara
y me consolara y cerrara mis heridas
Si existiera un Dios,
en definitiva, me gustaría
que fuera como tu,
aunque entonces .. yo, ¿que haría?

Crear tablas externas en Oracle

A estas tablas solo se le pueden hacer Selects.

create table EMP_PLAZAEXT
(
ID NUMBER(10),
rfc nvarchar2(80),
cod_pago nvarchar2(80),
unidad nvarchar2(80),
subunidad nvarchar2(80),
categoria nvarchar2(80),
horas nvarchar2(80),
no_plaza nvarchar2(80),
quin_fin nvarchar2(80),
quin_ini nvarchar2(80),
estatus nvarchar2(80),
mot_mov nvarchar2(80),
ban_pago nvarchar2(80)
)
organization EXTERNAL
(
type oracle_loader
default directory TEXTERNAL_DATA -- Directorio registrado en Oracle
access parameters
(
records delimited by newline
fields terminated by ',' -- Delimitador de los campos , para csv
)
location ('emp_plaza.txt') -- Nombre del Archivo
)
reject limit unlimited

Salu2 a to2
Atte. YoRcH
P.D. xD

Naela, una canción Oaxaqueña de dominio pupular

Bueno, no es la cancion completa, sino el poema, que en mi particular opinión es excelente. Solo espero que les desagrade lo suficiente.

Y yo que me la lleve al río creyendo
que era soltera pero tenia marido
la luz del entendimiento me hace ser mas precavido
sus muslos se me escapaban como peces sorprendidos
la mitad llenos de lumbre la mitad llenos de brío
y aquella noche corrí en el mejor de los caminos
montado en potranca fina sin riendas y sin estribo
y no quiero decir por hombre cosas que ella me dijo
por que teniendo marido me dijo que era soltera
cuando la llevaba al río.

Me lo contaron ayer las lenguas de doble filo
que te casaste hace un mes
y me quede tan tranquilo
otro cualquiera en mi caso se hubiese puesto a llorar
y yo cruzandome de brazos dije que me daba igual
nada de pegarme un tiro ni acosarte a maldiciones
ni apedrear con mis suspiros
en las rejas de tus balcones
que te has casado buena suerte
vive cien años contenta
y que a la hora de tu muerte DIOS
ni te lo tome a cuenta
que si al pie de los altares me nombre se te olvido
por la gloria de mi madre que no te guardo rencor
mas como tu novio es rico te vendo esta profecía
allá por la madrugada soñaras que fuiste mía
y recordaras la tarde que mi boca te beso
y despertaras llorando y te llamarás cobarde
cobarde como te lo digo yo por que aquel aquel que
no fue ni tu novio, ni tu marido, ni tu amante
ha sido quien mas te ha querido y con eso mi amor
con eso tengo bastante
y no le pido yo al cielo que te mande mas castigo
que estés durmiendo con él y estés soñando conmigo.

Salu2 a to2
Atte. YoRcH
P.D. xD

Parámetros de Inicialización en Oracle 10g

Contrario a lo que me había comentado, los parámetros de inicialización de Oracle 10g si son
editables, solo que hasta ahora no he encontrado una herramienta gráfica para hacerlo. Pero
lo anterior se puede hacer con SQL Plus, ya que el archivo de configuración no es de texto
plano (spfileBasedeDatos.ora).

Bueno, para ver el valor de los parámetros, podemos ejecutar el siguiente query:

> Select * From v$parameter

En mi caso, los problemas venían porque el numero de procesos o sesiones era muy pequeño (150)
y se acababan las conexiones, por lo tanto el listener ya no aceptaba conexiones. Para editar este parámetro, podemos hacer lo siguiente:

$ sqlplus /nolog

SQL> connect sys/password as sysdba;

SQL> alter system set processes= 1000 scope=spfile;

esto es para delimitar las conexiones entrantes a 1000

NOTA: No editen el archivo spfile.ora, porque ya después no va a funcionar la base de datos.

Salu2 a to2
Atte. YoRcH
P.D. xD