02-06-2009
This wont work because of scope issues. The array $arr[..] is declared in the shell, so it has to be interpreted by the shell. When you try to send it into sqsh's STDIN it won't be able to expand it since at that time the shell has no idea what value the SQL variable @foo will have.
One way of solving this (very ugly, but I have seen it in the wild) is to write some SQL code which generates some ksh code which (yes I said it was gawdugly) creates SQL code.
Don't do this. It might work but someone is going to have to maintain it. Prolly you.
Instead ask yourself why you are using an array in ksh in the first place. Could you use a file? A table in the DB? Is the data available from the inside of a SQL session?
10 More Discussions You Might Find Interesting
1. Filesystems, Disks and Memory
why do inode indices starts from 1 unlike array indexes which starts from 0
its a question from "the design of unix operating system" of maurice j bach
id be glad if i get to know the answer quickly
:) (0 Replies)
Discussion started by: sairamdevotee
0 Replies
2. UNIX for Dummies Questions & Answers
brothers why inode index starts from 1 unlike array inex which starts from 0
its a question from the design of unix operating system of maurice j.bach
i need to know the answer urgently...someone help please (1 Reply)
Discussion started by: sairamdevotee
1 Replies
3. Shell Programming and Scripting
I come across the problems when assigning the array in the script below . How to use the array with the 'string index' correctly ? When I assign a new string index , the array elements that are previously assigned are all changed .:eek::eek::eek:
$ array=211
$ echo ${array}
211
$... (4 Replies)
Discussion started by: youareapkman
4 Replies
4. Shell Programming and Scripting
$ cat file.txt
A|X|20
A|Y|20
A|X|30
A|Z|20
B|X|10
A|Y|40
Summing up $NF based on first 2 fields,
$ awk -F "|" 'BEGIN {OFS="|"}
{ sum += $NF }
END { for (f in sum) print f,sum }
' file.txt
o/p:
A|X|50
A|Y|60
A|Z|20 (4 Replies)
Discussion started by: uwork72
4 Replies
5. Shell Programming and Scripting
Hi,
I'm just trying to use a dynamic index for some array elements that I'm accessing within a loop. Specifically, I want to access an array at variable position $counter and then also at location $counter + 1 and $counter + 2 (the second and third array positions after it) but I keep getting... (0 Replies)
Discussion started by: weak_code-fu
0 Replies
6. Shell Programming and Scripting
Hi,
I am using KSH shell to do some programming.
I want to search array and print index value of the array.
Example..
nodeval4workflow="DESCRIPTION ="" ISENABLED ="YES" ISVALID ="YES" NAME="TESTVALIDATION"
set -A strwfVar $nodeval4workflow
strwfVar=DESCRIPTION=""... (1 Reply)
Discussion started by: tmalik79
1 Replies
7. Shell Programming and Scripting
Hi,
I need to update rows in a table based on the values in an array variable.
code is :
while read line
do
error_msg="$(echo $line)"
index=`expr $index+1`
done <"logs/$ffile"
rows_count=${#error_msg
}
i=0
while
do
echo "error msgs is... (2 Replies)
Discussion started by: RP09
2 Replies
8. Shell Programming and Scripting
Hi,
I am new to perl and I have the following query please help here.
I have following array variables declaration
@pld1 = qw(00 01 02 03 04 05);
@pld2 = qw(10 11 12 13 14 15);
for(my $k=1;$k<=2;$k++)
{
//I want here to use @pld1 if $k is 1
// and @pld2 if $k is 2. How to do... (3 Replies)
Discussion started by: janavan
3 Replies
9. Shell Programming and Scripting
I am trying to assign indexes to an associative array in a for loop but I have to use an eval command to make it work, this doesn't seem correct I don't have to do this with regular arrays
For example, the following assignment fails without the eval command:
#! /bin/bash
read -d "\0" -a... (19 Replies)
Discussion started by: Riker1204
19 Replies
10. Shell Programming and Scripting
Hello,
I have a complicated situational find and replace that I wrote in bash because I didn't know how to do everything in awk. The code works but is very slow, as expected.
To create my modified file, I am looping through an array that was populated earlier and making some replacements at... (6 Replies)
Discussion started by: LMHmedchem
6 Replies
LEARN ABOUT MOJAVE
tcl_upvar2
Tcl_UpVar(3) Tcl Library Procedures Tcl_UpVar(3)
__________________________________________________________________________________________________________________________________________________
NAME
Tcl_UpVar, Tcl_UpVar2 - link one variable to another
SYNOPSIS
#include <tcl.h>
int
Tcl_UpVar(interp, frameName, sourceName, destName, flags)
int
Tcl_UpVar2(interp, frameName, name1, name2, destName, flags)
ARGUMENTS
Tcl_Interp *interp (in) Interpreter containing variables; also used for error reporting.
const char *frameName (in) Identifies the stack frame containing source variable. May have any of the forms accepted by the
upvar command, such as #0 or 1.
const char *sourceName (in) Name of source variable, in the frame given by frameName. May refer to a scalar variable or to an
array variable with a parenthesized index.
const char *destName (in) Name of destination variable, which is to be linked to source variable so that references to destName
refer to the other variable. Must not currently exist except as an upvar-ed variable.
int flags (in) One of TCL_GLOBAL_ONLY, TCL_NAMESPACE_ONLY or 0; if non-zero, then destName is a global or namespace
variable; otherwise it is local to the current procedure (or current namespace if no procedure is
active).
const char *name1 (in) First part of source variable's name (scalar name, or name of array without array index).
const char *name2 (in) If source variable is an element of an array, gives the index of the element. For scalar source vari-
ables, is NULL.
_________________________________________________________________
DESCRIPTION
Tcl_UpVar and Tcl_UpVar2 provide the same functionality as the upvar command: they make a link from a source variable to a destination
variable, so that references to the destination are passed transparently through to the source. The name of the source variable may be
specified either as a single string such as xyx or a(24) (by calling Tcl_UpVar) or in two parts where the array name has been separated
from the element name (by calling Tcl_UpVar2). The destination variable name is specified in a single string; it may not be an array ele-
ment.
Both procedures return either TCL_OK or TCL_ERROR, and they leave an error message in the interpreter's result if an error occurs.
As with the upvar command, the source variable need not exist; if it does exist, unsetting it later does not destroy the link. The desti-
nation variable may exist at the time of the call, but if so it must exist as a linked variable.
KEYWORDS
linked variable, upvar, variable
Tcl 7.4 Tcl_UpVar(3)