Sponsored Content
Top Forums Shell Programming and Scripting sql query variable not exactly unix Post 32916 by Jimbo on Tuesday 10th of December 2002 02:03:08 PM
Old 12-10-2002
Best solution would be to use the date functions of sql. The informix sql may differ slightly, but in Oracle:
Code:
where date between sysdate - 1 and sysdate

which represents the last 24 hours, to this second.
Jimbo
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

script variable within a sql query

I created a script to read a csv file with four columns. The script also saved values of each col in a arry. In the script, i connected to db try to run a query to pull out data baisc on the values from the csv file. select Num from tableName where Sec_Num in ('${isin}') /*isin is an arry... (1 Reply)
Discussion started by: Sherry_Run
1 Replies

2. Shell Programming and Scripting

How to store the sql query's output in a variable

Hi, My requirement is : We are calling an sql statement from a UNIX session, and fetching data into some variables from a table .. now we are unable to access these variables from outside the SQL part. Please let me know how can I achieve this. Can you please share a code snippet which... (4 Replies)
Discussion started by: venkatesh_sasi
4 Replies

3. Shell Programming and Scripting

Problem while storing sql query value in a variable

Hi, When i execute the below statement , the value is not getting stored in the variable. AnneeExercice=`sqlplus $LOGSQL/$PASSWORDSQL << FIN >> $GEMOLOG/gemo_reprev_reel_data_ventil_$filiale.trc SELECT bi09exercice FROM bi09_scenario WHERE bi09idfiliale=UPPER('de') AND ... (1 Reply)
Discussion started by: krishna_gnv
1 Replies

4. Shell Programming and Scripting

How to use sql data file in unix csv file as input to an sql query from shell

Hi , I used the below script to get the sql data into csv file using unix scripting. I m getting the output into an output file but the output file is not displayed in a separe columns . #!/bin/ksh export FILE_PATH=/maav/home/xyz/abc/ rm $FILE_PATH/sample.csv sqlplus -s... (2 Replies)
Discussion started by: Nareshp
2 Replies

5. Shell Programming and Scripting

Execute SQL query in unix script

Hi I am new in unix. oracle and unix are installed in my sytem.i need the script which could connect to the oracle using username ,password and schema and can run the select * from tab query. Thanks vijay (8 Replies)
Discussion started by: vijays3
8 Replies

6. UNIX for Advanced & Expert Users

Passing Hash variable in to sql query in perl

Hi Everyone, Can anyone help me how do i call hash variable in to sql query in perl. Please see the script below i have defined two Hash %lc and %tab as below $lc{'REFF'}='V_RES_CLASS'; $lc{'CALE'}='V_CAP_CLASS'; $lc{'XRPD'}='V_XFMR_CLASS'; $tab{'V_RES_CLASS'}='V_MFR_SERS';... (6 Replies)
Discussion started by: jam_prasanna
6 Replies

7. UNIX for Dummies Questions & Answers

Running a SQL Query from UNIX

Hi, Could you please help me on this. I have bulk of queries written in text file. I want to use those queries and want to execute from UNIX. I don't want to run this file as a sql file as this file will change every week. I want to run it in my environment as bulk sql statement from text... (1 Reply)
Discussion started by: abhii
1 Replies

8. Shell Programming and Scripting

Run sql query after ssh in UNIX

I am running this test.ksh on server1. It successfully logins to server2 but runs the queries of query.sql on server1. query.sql is present in both server1 and server2 Can anybody please help. I need to run queries on server2 itself.:confused: Below is the test script... (10 Replies)
Discussion started by: shruthimithra
10 Replies

9. Shell Programming and Scripting

Asign to variable ksh some values of sql query

Hi, I'm trying to asign to ksh varible some values of a sql query. The output query would be: xxxx 1 yyyy 2 I do: values=`$PATH_UTI/query_sh " select think1||'------'||think2 from some_table where think3 = '$1'; ... (2 Replies)
Discussion started by: mierdatuti
2 Replies

10. Shell Programming and Scripting

How to Assign the Output of an SQL Query to a Variable?

Hi iam new to shell scripting how to declare variables as redshift query and I have to compare two counts by using if condition . ex:count=select count(*) from prd; select count(*) from prd; select count(*) from tag; can any one help me . Please use CODE tags when displaying... (1 Reply)
Discussion started by: sam526
1 Replies
SQL::Abstract::Limit(3pm)				User Contributed Perl Documentation				 SQL::Abstract::Limit(3pm)

NAME
SQL::Abstract::Limit - portable LIMIT emulation SYNOPSIS
use SQL::Abstract::Limit; my $sql = SQL::Abstract::Limit->new( limit_dialect => 'LimitOffset' );; # or autodetect from a DBI $dbh: my $sql = SQL::Abstract::Limit->new( limit_dialect => $dbh ); # or from a Class::DBI class: my $sql = SQL::Abstract::Limit->new( limit_dialect => 'My::CDBI::App' ); # or object: my $obj = My::CDBI::App->retrieve( $id ); my $sql = SQL::Abstract::Limit->new( limit_dialect => $obj ); # generate SQL: my ( $stmt, @bind ) = $sql->select( $table, @fields, \%where, @order, $limit, $offset ); # Then, use these in your DBI statements my $sth = $dbh->prepare( $stmt ); $sth->execute( @bind ); # Just generate the WHERE clause (only available for some syntaxes) my ( $stmt, @bind ) = $sql->where( \%where, @order, $limit, $offset ); DESCRIPTION
Portability layer for LIMIT emulation. new( case => 'lower', cmp => 'like', logic => 'and', convert => 'upper', limit_dialect => 'Top' ) All settings are optional. limit_dialect Sets the default syntax model to use for emulating a "LIMIT $rows OFFSET $offset" clause. Default setting is "GenericSubQ". You can still pass other syntax settings in method calls, this just sets the default. Possible values are: LimitOffset PostgreSQL, SQLite LimitXY MySQL, MaxDB, anything that uses SQL::Statement LimitYX SQLite (optional) RowsTo InterBase/FireBird Top SQL/Server, MS Access RowNum Oracle FetchFirst DB2 Skip Informix GenericSubQ Sybase, plus any databases not recognised by this module $dbh a DBI database handle CDBI subclass CDBI object other DBI-based thing The first group are implemented by appending a short clause to the end of the statement. The second group require more intricate wrapping of the original statement in subselects. You can pass a DBI database handle, and the module will figure out which dialect to use. You can pass a Class::DBI subclass or object, and the module will find the $dbh and use it to find the dialect. Anything else based on DBI can be easily added by locating the $dbh. Patches or suggestions welcome. Other options are described in SQL::Abstract. select( $table, @fields, $where, [ @order, [ $rows, [ $offset ], [ $dialect ] ] ] ) Same as "SQL::Abstract::select", but accepts additional $rows, $offset and $dialect parameters. The $order parameter is required if $rows is specified. The $fields parameter is required, but can be set to "undef", '' or '*' (all these get set to '*'). The $where parameter is also required. It can be a hashref or an arrayref, or "undef". where( [ $where, [ @order, [ $rows, [ $offset ], [ $dialect ] ] ] ] ) Same as "SQL::Abstract::where", but accepts additional $rows, $offset and $dialect parameters. Some SQL dialects support syntaxes that can be applied as simple phrases tacked on to the end of the WHERE clause. These are: LimitOffset LimitXY LimitYX RowsTo This method returns a modified WHERE clause, if the limit syntax is set to one of these options (either in the call to "where" or in the constructor), and if $rows is passed in. Dies via "croak" if you try to use it for other syntaxes. $order is required if $rows is set. $where is required if any other parameters are specified. It can be a hashref or an arrayref, or "undef". Returns a regular "WHERE" clause if no limits are set. insert update delete values generate See SQL::Abstract for these methods. "update" and "delete" are not provided with any "LIMIT" emulation in this release, and no support is planned at the moment. But patches would be welcome. Limit emulation The following dialects are available for emulating the LIMIT clause. In each case, $sql represents the SQL statement generated by "SQL::Abstract::select", minus the ORDER BY clause, e.g. SELECT foo, bar FROM my_table WHERE some_conditions $sql_after_select represents $sql with the leading "SELECT" keyword removed. "order_cols_up" represents the sort column(s) and direction(s) specified in the "order" parameter. "order_cols_down" represents the opposite sort. "$last = $rows + $offset" LimitOffset Syntax $sql ORDER BY order_cols_up LIMIT $rows OFFSET $offset or $sql ORDER BY order_cols_up LIMIT $rows if "$offset == 0". Databases PostgreSQL SQLite LimitXY Syntax $sql ORDER BY order_cols_up LIMIT $offset, $rows or $sql ORDER BY order_cols_up LIMIT $rows if "$offset == 0". Databases MySQL LimitYX Syntax $sql ORDER BY order_cols_up LIMIT $rows, $offset or $sql ORDER BY order_cols_up LIMIT $rows if "$offset == 0". Databases SQLite understands this syntax, or LimitOffset. If autodetecting the dialect, it will be set to LimitOffset. RowsTo Syntax $sql ORDER BY order_cols_up ROWS $offset TO $last Databases InterBase FireBird Top Syntax SELECT * FROM ( SELECT TOP $rows * FROM ( SELECT TOP $last $sql_after_select ORDER BY order_cols_up ) AS foo ORDER BY order_cols_down ) AS bar ORDER BY order_cols_up Databases SQL/Server MS Access RowNum Syntax Oracle numbers rows from 1, not zero, so here $offset has been incremented by 1. SELECT * FROM ( SELECT A.*, ROWNUM r FROM ( $sql ORDER BY order_cols_up ) A WHERE ROWNUM <= $last ) B WHERE r >= $offset Databases Oracle FetchFirst Syntax SELECT * FROM ( SELECT * FROM ( $sql ORDER BY order_cols_up FETCH FIRST $last ROWS ONLY ) foo ORDER BY order_cols_down FETCH FIRST $rows ROWS ONLY ) bar ORDER BY order_cols_up Databases IBM DB2 GenericSubQ When all else fails, this should work for many databases, but it is probably fairly slow. This method relies on having a column with unique values as the first column in the "SELECT" clause (i.e. the first column in the "@fields" parameter). The results will be sorted by that unique column, so any $order parameter is ignored, unless it matches the unique column, in which case the direction of the sort is honoured. Syntax SELECT field_list FROM $table X WHERE where_clause AND ( SELECT COUNT(*) FROM $table WHERE $pk > X.$pk ) BETWEEN $offset AND $last ORDER BY $pk $asc_desc $pk is the first column in "field_list". $asc_desc is the opposite direction to that specified in the method call. So if you want the final results sorted "ASC", say so, and it gets flipped internally, but the results come out as you'd expect. I think. The "BETWEEN $offset AND $last" clause is replaced with "< $rows" if <$offset == 0>. Databases Sybase Anything not otherwise known to this module. Skip Syntax select skip 5 limit 5 * from customer which will take rows 6 through 10 in the select. Databases Informix SUBCLASSING
You can create your own syntax by making a subclass that provides an "emulate_limit" method. This might be useful if you are using stored procedures to provide more efficient paging. emulate_limit( $self, $sql, $order, $rows, $offset ) $sql This is the SQL statement built by SQL::Abstract, but without the ORDER BY clause, e.g. SELECT foo, bar FROM my_table WHERE conditions or just WHERE conditions if calling "where" instead of "select". $order The "order" parameter passed to the "select" or "where" call. You can get an "ORDER BY" clause from this by calling my $order_by = $self->_order_by( $order ); You can get a pair of "ORDER BY" clauses that sort in opposite directions by saying my ( $up, $down ) = $self->_order_directions( $order ); The method should return a suitably modified SQL statement. AUTO-DETECTING THE DIALECT The $dialect parameter that can be passed to the constructor or to the "select" and "where" methods can be a number of things. The module will attempt to determine the appropriate syntax to use. Supported $dialect things are: dialect name (e.g. LimitOffset, RowsTo, Top etc.) database moniker (e.g. Oracle, SQLite etc.) DBI database handle Class::DBI subclass or object CAVEATS
Paging results sets is a complicated undertaking, with several competing factors to take into account. This module does not magically give you the optimum paging solution for your situation. It gives you a solution that may be good enough in many situations. But if your tables are large, the SQL generated here will often not be efficient. Or if your queries involve joins or other complications, you will probably need to look elsewhere. But if your tables aren't too huge, and your queries straightforward, you can just plug this module in and move on to your next task. ACKNOWLEDGEMENTS
Thanks to Aaron Johnson for the Top syntax model (SQL/Server and MS Access). Thanks to Emanuele Zeppieri for the IBM DB2 syntax model. Thanks to Paul Falbe for the Informix implementation. TODO
Find more syntaxes to implement. Test the syntaxes against real databases. I only have access to MySQL. Reports of success or failure would be great. DEPENDENCIES
SQL::Abstract, DBI::Const::GetInfoType, Carp. SEE ALSO
DBIx::SQLEngine, DBIx::SearchBuilder, DBIx::RecordSet. BUGS
Please report all bugs via the CPAN Request Tracker at http://rt.cpan.org/NoAuth/Bugs.html?Dist=SQL-Abstract-Limit <http://rt.cpan.org/NoAuth/Bugs.html?Dist=SQL-Abstract-Limit>. COPYRIGHT AND LICENSE
Copyright 2004 by David Baird. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. AUTHOR
David Baird, "cpan@riverside-cms.co.uk" HOW IS IT DONE ELSEWHERE
A few CPAN modules do this for a few databases, but the most comprehensive seem to be DBIx::SQLEngine, DBIx::SearchBuilder and DBIx::RecordSet. Have a look in the source code for my notes on how these modules tackle similar problems. perl v5.12.4 2011-09-17 SQL::Abstract::Limit(3pm)
All times are GMT -4. The time now is 01:51 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy