nock Ierakstīts Janvāris 21, 2012 Share Ierakstīts Janvāris 21, 2012 (labots) Sveicināti. Priekšvārds/galvenā problēma Ar datu bāzēm es sāku strādāt vakar pēc vairāk nekā pusotra gada pauzes. Bet nav cita cilvēka, kas to tagad varētu izdarīt un man nesanāca atrast gatavu risināju tam, ko man vajag. Problēma Man nepieciešams uzrakstīt pgScript funkciju, kas tiks automātiski palaista reizi mēnesī, izveidos tabulu ar sintaksi DATI_GADS_MĒNESIS un pārnesīs datus no citas datu bāzes šajā. T.i. katru mēnesi man tiks iztukšota izmantojamā datubāze un iepriekšējā mēneša dati tiks glabāti atsevišķā tabulā. Piemēram tam ir jāizskatās šādi: CURR_DATA DATA_2012_01 DATA_2011_12 DATA_2011_11 DATA_2011_10 Pašlaik tas, kas man ir izskatās šādi: DECLARE @T, @M, @Y; -- Variable names begin with a @ SET @M = '01'; SET @Y = '2012'; SET @T = 'DATA_' + CAST (@Y AS STRING) + '_' + CAST (@M AS STRING); CREATE TABLE @T (uid integer primary key, uname character varying[255]); Jā - @M un @Y ierakstās ar roku. Jautājums Kā panākt, lai mainīgie @M un @Y tiktu automātiski ņemti no tekošā(iepriekšējā) gada/mēneša? Tā, nolēmu šo visu veikt nevis SQL komandā, bet iznest uz batņiku. Taga jautājums ir tāds, kā pielikt komandai *.bat variablu? Man vajag lai ir kaut-kas līdzīgs šim: @echo off set var=%DATE:~-4% "C:\PostgreSQL\9.1\bin\psql.exe" -c "CREATE TABLE " %var% " (uid integer primary key, uname character varying);" -h localhost -U postgres -d postgres -p 5432 echo pause = Tam būtu jāizveido tabulu kuras nosaukums ir tekošais gads. Bet šitā variablu ievietot nevar. Kādi vēl ir varianti? Labots Janvāris 23, 2012 - nock Link to comment Share on other sites More sharing options...
BoredOne Janvāris 22, 2012 Share Janvāris 22, 2012 Pagūglē pēc current_date un to_char funkcijas. piemēram select to_char(current _date - 28,'MM') into @M; Varētu darīt kaut ko interesantu. Varbūt. Protams tas būtu ātrāk ātrāk atrodams pajautājot googles mātei. Link to comment Share on other sites More sharing options...
gringo Janvāris 22, 2012 Share Janvāris 22, 2012 Ka butu ar extract? piem: extract(year from sysdate); Link to comment Share on other sites More sharing options...
nock Janvāris 22, 2012 Author Share Janvāris 22, 2012 (labots) Viss sanāca. Tēmu var slēgt ciet UPDATE Tā, nolēmu šo visu veikt nevis SQL komandā, bet iznest uz batņiku. Taga jautājums ir tāds, kā pielikt komandai *.bat variablu? Man vajag lai ir kaut-kas līdzīgs šim: @echo off set var=%DATE:~-4% "C:\PostgreSQL\9.1\bin\psql.exe" -c "CREATE TABLE " %var% " (uid integer primary key, uname character varying);" -h localhost -U postgres -d postgres -p 5432 echo pause = Tam būtu jāizveido tabulu kuras nosaukums ir tekošais gads. Bet šitā variablu ievietot nevar. Kādi vēl ir varianti? NOVECOJIS: Man sanāk šitā Select extract(year from current_date); izdod tekošo gadu. select extract(year from current_date) into @Y; Izpildot kā pgScript lamājas uz sintaksi select extract(year from current_date) into ERROR: syntax error at end of input LINE 1: select extract(year from current_date) into Ja mēģinu SET @Y = extract(year from current_date); Saņemu syntax error - unexpected character. Kā tad pareizi mainīgajā ierakstīt? Vai arī deklarējot jānorāda tā tips? Pašlaik man ir vienkārši DECLARE @T, @M, @Y; Labots Janvāris 23, 2012 - nock Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!