Sponsored Content
Top Forums Shell Programming and Scripting How to ignore * (asterisk) in a variable Post 302202732 by bradtri2 on Thursday 5th of June 2008 01:35:55 PM
Old 06-05-2008
My apologies for my example not being very clear. The "Actual SQL" shown in my OP is the value that the fetch will return into the shell variable "sqlrow". Since the Actual SQL has an "*" in it, when I echo $sqlrow, the * gets resolved and substitutes in the list of files from the current directory.

So, duh, I was able to resolve that by putting double quotes around the variable on the echo like : echo "$sqlrow"

Now, the plot thickens a bit. The sql is stored in a varchar(32000) on the source table. When I put the double quotes on the echo, I now get a record echo'd out that is 32000 bytes long. (The actual SQL statements will range from 50 - 10000 bytes). So, I don't want to write out all that extra space on the end of each record.

I can get the length of the sql, and I'm now trying to substr it in awk as follows where $rowlen contains the length of the sql:

sqltxt=`echo "$sqlrow"|awk '{print substr($0,1,$rl)}' rl=$rowlen`

However, I'm now getting the message "awk: record ` SELECT * F...' too long"

What is the best way for me to either suppress the extra spaces on the end of each record or to substr out the actual SQL??
 

4 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

passing asterisk to a script as variable

I'm writing a script that will ssh to a number of hosts and run commands. I'm a bit stumped at the moment as some of the commands that I need to run contain wildcards (i.e. *), and so far I have not figured out how to escape the * character so the script doesn't expand it. More specifically, here's... (9 Replies)
Discussion started by: GKnight
9 Replies

2. AIX

Replace string with asterisk(*) in variable

I was trying to replace a string ( for eg - @@asterisk@@ to * ) in variable using cat $INFILE | while read LINE do stmt1=`echo $LINE | sed 's/@@asterisk@@/\*/g'` stmt=$stmt' '$stmt1 stmt2=`echo $LINE` STATEMENT=$STATEMENT' '$stmt2 done echo 'Statement with sed -- > '... (5 Replies)
Discussion started by: Vaddadi
5 Replies

3. Shell Programming and Scripting

How to assign * asterisk to variable?

How can I assign asterisk to variable I have try a="\* " but I was not succesful :( any idea ? thanks (5 Replies)
Discussion started by: kvok
5 Replies

4. Shell Programming and Scripting

Need to use asterisk in variable

Hi All, I am having a challange to pass the asterisk in the variable. Basically, I am writing a shell script to check if a marker file exists but when I am assigning the varialbe it cannot use the wildcard asterisk as expected, therefore, my program is always outputs "Marker file is not... (4 Replies)
Discussion started by: express14
4 Replies
SQLITE_CREATE_FUNCTION(3)												 SQLITE_CREATE_FUNCTION(3)

sqlite_create_function - Registers a ";regular" User Defined Function for use in SQL statements

SYNOPSIS
void sqlite_create_function (resource $dbhandle, string $function_name, callable $callback, [int $num_args = -1]) DESCRIPTION
Object oriented style (method): void SQLiteDatabase::createFunction (string $function_name, callable $callback, [int $num_args = -1]) sqlite_create_function(3) allows you to register a PHP function with SQLite as an UDF (User Defined Function), so that it can be called from within your SQL statements. The UDF can be used in any SQL statement that can call functions, such as SELECT and UPDATE statements and also in triggers. PARAMETERS
o $dbhandle - The SQLite Database resource; returned from sqlite_open(3) when used procedurally. This parameter is not required when using the object-oriented method. o $function_name - The name of the function used in SQL statements. o $callback - Callback function to handle the defined SQL function. Note Callback functions should return a type understood by SQLite (i.e. scalar type). o $num_args - Hint to the SQLite parser if the callback function accepts a predetermined number of arguments. Note Two alternative syntaxes are supported for compatibility with other database extensions (such as MySQL). The preferred form is the first, where the $dbhandle parameter is the first parameter to the function. RETURN VALUES
No value is returned. EXAMPLES
Example #1 sqlite_create_function(3) example <?php function md5_and_reverse($string) { return strrev(md5($string)); } if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) { sqlite_create_function($dbhandle, 'md5rev', 'md5_and_reverse', 1); $sql = 'SELECT md5rev(filename) FROM files'; $rows = sqlite_array_query($dbhandle, $sql); } else { echo 'Error opening sqlite db: ' . $sqliteerror; exit; } ?> In this example, we have a function that calculates the md5 sum of a string, and then reverses it. When the SQL statement executes, it returns the value of the filename transformed by our function. The data returned in $rows contains the processed result. The beauty of this technique is that you do not need to process the result using a foreach loop after you have queried for the data. PHP registers a special function named php when the database is first opened. The php function can be used to call any PHP function with- out having to register it first. Example #2 Example of using the PHP function <?php $rows = sqlite_array_query($dbhandle, "SELECT php('md5', filename) from files"); ?> This example will call the md5(3) on each filename column in the database and return the result into $rows Note For performance reasons, PHP will not automatically encode/decode binary data passed to and from your UDF's. You need to manually encode/decode the parameters and return values if you need to process binary data in this way. Take a look at sqlite_udf_encode_binary(3) and sqlite_udf_decode_binary(3) for more details. Tip It is not recommended to use UDF's to handle processing of binary data, unless high performance is not a key requirement of your application. Tip You can use sqlite_create_function(3) and sqlite_create_aggregate(3) to override SQLite native SQL functions. SEE ALSO
sqlite_create_aggregate(3). PHP Documentation Group SQLITE_CREATE_FUNCTION(3)
All times are GMT -4. The time now is 04:14 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy