465: WHERE tl.Target_level_id = p_Target_Level_id
466: AND lt.Level_ID = tl.Time_Level_id
467: AND lo.Level_ID = tl.org_Level_id;
468:
469: l_cursor := DBMS_SQL.OPEN_CURSOR;
470:
471: -- the select statement depends on if the period_name is related to
472: -- the organization's set of books. If the organization is -1 (total_org)
473: -- then the default calendar is used.
497: ||'AND NVL(END_DATE,:p_Date) ';
498:
499: END IF;
500:
501: DBMS_SQL.PARSE
502: ( c => l_cursor
503: , statement => l_select_stmt
504: , language_flag => DBMS_SQL.NATIVE
505: );
500:
501: DBMS_SQL.PARSE
502: ( c => l_cursor
503: , statement => l_select_stmt
504: , language_flag => DBMS_SQL.NATIVE
505: );
506:
507: IF( l_Is_OrgRel) THEN
508: DBMS_SQL.BIND_VARIABLE
504: , language_flag => DBMS_SQL.NATIVE
505: );
506:
507: IF( l_Is_OrgRel) THEN
508: DBMS_SQL.BIND_VARIABLE
509: ( c => l_cursor
510: , name => ':p_Organization_ID'
511: , value => p_Organization_ID
512: );
510: , name => ':p_Organization_ID'
511: , value => p_Organization_ID
512: );
513:
514: DBMS_SQL.BIND_VARIABLE
515: ( c => l_cursor
516: , name => ':l_org_level'
517: , value => l_org_level
518: );
518: );
519:
520: END IF;
521:
522: DBMS_SQL.BIND_VARIABLE
523: ( c => l_cursor
524: , name => ':p_Date'
525: , value => p_date
526: );
524: , name => ':p_Date'
525: , value => p_date
526: );
527:
528: DBMS_SQL.DEFINE_COLUMN
529: ( c => l_cursor
530: , position => 1
531: , column => l_period_set_name
532: , column_size => 100
530: , position => 1
531: , column => l_period_set_name
532: , column_size => 100
533: );
534: DBMS_SQL.DEFINE_COLUMN
535: ( c => l_cursor
536: , position => 2
537: , column => l_period_name
538: , column_size => 100
536: , position => 2
537: , column => l_period_name
538: , column_size => 100
539: );
540: DBMS_SQL.DEFINE_COLUMN
541: ( c => l_cursor
542: , position => 3
543: , column => l_id
544: , column_size => 2500
543: , column => l_id
544: , column_size => 2500
545: );
546:
547: l_num_rows := DBMS_SQL.EXECUTE_AND_FETCH
548: ( c => l_cursor
549: , exact => TRUE
550: );
551:
548: ( c => l_cursor
549: , exact => TRUE
550: );
551:
552: DBMS_SQL.COLUMN_VALUE
553: ( c => l_cursor
554: , position => 1
555: , value => l_period_set_name
556: );
553: ( c => l_cursor
554: , position => 1
555: , value => l_period_set_name
556: );
557: DBMS_SQL.COLUMN_VALUE
558: ( c => l_cursor
559: , position => 2
560: , value => l_period_name
561: );
558: ( c => l_cursor
559: , position => 2
560: , value => l_period_name
561: );
562: DBMS_SQL.COLUMN_VALUE
563: ( c => l_cursor
564: , position => 3
565: , value => l_id
566: );
564: , position => 3
565: , value => l_id
566: );
567:
568: DBMS_SQL.CLOSE_CURSOR(l_cursor);
569:
570: ELSE
571: l_id := '-1';
572:
576:
577: EXCEPTION
578: WHEN NO_DATA_FOUND THEN
579: -- No such time period exist.
580: DBMS_SQL.CLOSE_CURSOR(l_cursor);
581:
582: x_Time_Level_Value := NULL;
583: x_Return_Status := FND_API.G_RET_STS_SUCCESS;
584:
584:
585: WHEN TOO_MANY_ROWS THEN
586:
587: -- More than one row, but still get the first record
588: DBMS_SQL.COLUMN_VALUE
589: ( c => l_cursor
590: , position => 1
591: , value => l_period_set_name
592: );
589: ( c => l_cursor
590: , position => 1
591: , value => l_period_set_name
592: );
593: DBMS_SQL.COLUMN_VALUE
594: ( c => l_cursor
595: , position => 2
596: , value => l_period_name
597: );
596: , value => l_period_name
597: );
598: x_Time_Level_Value := l_period_set_name||'+'||l_period_name;
599:
600: DBMS_SQL.CLOSE_CURSOR(l_cursor);
601: x_Return_Status := FND_API.G_RET_STS_ERROR;
602:
603: WHEN OTHERS THEN
604: DBMS_SQL.CLOSE_CURSOR(l_cursor);
600: DBMS_SQL.CLOSE_CURSOR(l_cursor);
601: x_Return_Status := FND_API.G_RET_STS_ERROR;
602:
603: WHEN OTHERS THEN
604: DBMS_SQL.CLOSE_CURSOR(l_cursor);
605: x_Return_Status := FND_API.G_RET_STS_UNEXP_ERROR;
606:
607: END Get_Time_Level_Value;
608: