Re: How to do the equivalent of 'describe' with a SELECT?



On Mar 31, 12:05 pm, sybra...@xxxxxxxxx wrote:
On 31 Mar 2007 07:50:06 -0700, "Ramon F Herrera" <r...@xxxxxxxxxxx>
wrote:



The SQL code that I need is for a Pro*C/C++ application. Before my
compiled C program does its main thing, it should check the current
sizes of the variables in the target table.

Why, do you think you can dynamically change the change of variables
of a *compiled* program? That would be very weird.

I would like to be able to change the variables' sizes, for instance,
from:

VARCHAR(20);

to

VARCHAR(30);

without having to recompile all my C programs. Or at least, reduce the
impact of such resize.

TIA,

-Ramon

In PL/SQL you would declare the variable as

<variable> <table>.<column>%type

but you would still need to recompile everything (automagically).
May be something similar exists in Pro*C.
Apart from that your task is impossible: you simply can't change
dynamically the limits of *statically* declared variables, or you
would need pointer variables everywhere.
Such is the fate of a developer hardcoding everything and not using
constants.

--

Sybrand Bakker
Senior Oracle DBA

This is the situation, Sybrand.

My application creates delimited <tablename>.dat files and I want to
make sure that some fields are properly truncated (or perhaps there is
a way to tell SQL*Loader to do the truncation? I rather do it myself,
and spare sqlldr the trouble).

Currently the guy wearing the SQL/PL hat and the C developer hat is
just me, but maybe later on, some guy will change the sizes of
variables and break things.

I have some programs that read files from disk and place them in an
array. The typical solution is to declare a huge array size which will
hopefully never be outgrown.

I think this should be used:

if (numberOfLines > MAXLINES) {
printf("This program has to be recompiled\n");
printf("Change the value of `MAXLINES' to at least %d\n",
numberOfLines);
exit (99);
}

I am thinking of using a similar approach with the sizes of variables:
allow the PL/SQL guy to change them anytime, without having to tell
the C developer, who will find out about the change next time he tries
to run one of his programs.

-Ramon


.



Relevant Pages

  • Re: Can a parameter be passed to a function
    ... Sizes must be compile-time constants. ... sizes are elaboration time constant. ... some constant to declare vector size of function return type and same ...
    (comp.lang.verilog)
  • Re: Ultimate debunking of Cantors Theory
    ... relative sizes? ... And I can declare that every initial segment of the diagonal of the ...
    (sci.math)
  • Re: How do I surpress this warning?
    ... I am not sure if there is a switch in nc to suppress this warning. ... However you could use `ifdef and declare 3 different sizes of the ...
    (comp.lang.verilog)
  • Re: variable declration in 8051 assembly
    ... Can anyone tell me how to declare 8-bit or 16-bit variables while ... programming in assembly language for 8051 microcontroller, ... The free SesAsm51 assembler implements types and sizes. ...
    (comp.arch.embedded)
  • Re: Linux Fails the Scotland Police Dept.
    ... Gnumeric default to XL compatible 256x65535 but can be rebuilt with ... larger sizes as desired. ... Jody (Gnumeric Lead & OOo Developer) ...
    (comp.os.linux.misc)