В Idea в windows в консоле не корректно отображается кириллица

Неверное отображение криллицей

В Idea появилась проблема, когда на windows в консоле не корректно отображается кириллица ( Вопросительные знаки вместо букв ???).

В Settings project encoding все заменил на UTF-8, в Gradle компиляцию в UTF-8 тоже указал, нечего из этого не помогло.

Удалось решить следующим способом проблему с кириллицей в консоле.

Help → Edit custom VM Options и вставить следующее:

-Dfile.encoding=UTF-8
-Dconsole.encoding=UTF-8

Также может помочь настройки как на скрине ниже

настройка Idea для кириллицы в консоле

SQL запрос Oracle поиска дубликатов по нескольким полям

sql Oracle поиск дубликатов

SQL запрос Oracle поиск дубликата записей по нескольким полям, можно использовать комбинацию функций GROUP BY и HAVING. Вот пример запроса:

SELECT field1, field2, field3, COUNT(*) AS count
FROM your_table
GROUP BY field1, field2, field3
HAVING COUNT(*) > 1;

В этом sql запросе вы должны заменить «your_table» на имя вашей таблицы, а «field1», «field2» и «field3» на имена полей, по которым вы хотите найти дубликаты.

Вы получите результат, в котором будут показаны значения полей и количество повторений. Только те записи, в которых количество повторений больше 1, будут включены в результат.

Через партиции

Для поиска дубликатов в Oracle можно использовать анализ партиций таблицы. Вот пример sql запроса, который может помочь вам найти дубликаты внутри партиций таблицы:

SELECT column1, column2, ..., columnN
FROM (
    SELECT column1, column2, ..., columnN,
        COUNT(*) OVER (PARTITION BY column1, column2, ..., columnN) AS duplicate_count
    FROM your_table
    )
WHERE duplicate_count > 1;

Замените your_table на имя вашей таблицы, а column1, column2, …, columnN на столбцы, по которым вы хотите искать дубликаты. Результатом будет список строк, содержащих дубликаты исходных данных.

Обратите внимание, что этот запрос проверяет дубликаты только в рамках партиций таблицы. Если вы хотите проверить все строки таблицы на дубликаты, вам нужно будет удалить часть (PARTITION BY column1, column2, ..., columnN).

Миграция с JUnit4 на JUnit Jupiter в Spring проекте.

SpringBootTest

В SpringBoot 2 уже встроена поддержка JUnit Jupiter, что упрощает нам миграцию c Junit4

Для этого нам надо в SpringBoot 2 надо в тестах убрать

Аннотацию @RunWith, заменить import, в которых фигурируют Test и различных Assert для тестов с Junit на Jupiter

Было

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith( SpringRunner.class )
@SpringBootTest
public class ExampleTest{

@Test
public void isTest(){
Assert.assertEquals(1,1)
}

Стало

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

@SpringBootTest
public class ExampleTest{

@Test
public void isTest(){
assertEquals(1,1)
}

Проверьте какие еще аннотации могут относится к Junit4 и исправьте их на Junit 5

JUNIT 4JUnit 5
@Before@BeforeEach
@After@AfterEach
@BeforeClass@BeforeAll
@AfterClass@AfterAll
@Ignore@Disable

Запуск скрипта в среде PowerShell

Необходимо организовать запуск скриптов Powershell. Для примера запустим скрипт ps1, в котором получаем результат работы другого скрипта ps1 и работаем с этим значением.

Напишем первый скрипт, который будет что то возвращать, например json значение какого либо ключа

GetSomeValue.ps1
$answer = $ResponseAnswer.Content | Out-String | ConvertFrom-Json
return $answer.someJsonKey

Теперь напишем скрипт, который запустить первый скрипт получит значение и выведет его на экран

CheckValue.ps1
$GetValue = & "$PSScriptRoot\GetSomeValue.ps1"
If ($GetValue -eq "Ice") {
 write-Host "Success Value is "  $GetValue 
 }Else
{
  write-Host "Failed Value is "  $GetValue  
}

Переменные для имени колонки ms sql

MsSql_Declare Переменные в ms sqlНеобходимо заменить название имени столбца на значение из переменной.  То есть брать название столбца из переменной. В Ms SQL  это можно сделать достаточно просто через  exec().

Итак стандартный запрос

SELECT '001' AS [CODLIS]
, DATAVAL
, stuff(tbl.COD, 10, 2, 'DL') AS CODART
, tbl.DL AS PR
FROM
tbl
WHERE
tbl.DL > 0

Как видно текст DL встречается аж в 3 местах. Вот его нам надо заменить на свою переменную, чтобы меняя только значение переменной менять и имя колонки и текст в функции stuff.

Делается это так.

Создаём 2 переменные. В одной будет имя колонки, в другой сам запрос.

DECLARE @str varchar(3000),@nameCol varchar(2); 

Устанавливаем значения. Не забываем про двойной апостроф

Set  @nameCol = 'DL'

Set @str = 'SELECT ''001'' AS [CODLIS]
     , ''03.28.2015 0:00:00'' AS DATAVAL
     , stuff(tbl.COD, 10, 2, '''+@nameCol+''') AS CODART
     , '+@nameCol+' AS PR
FROM
 tbl
WHERE
 '+@nameCol+' > 0'

Теперь запускаем наш запрос используя exec()

exec(@str)

Вот собственно и все, меняя значение переменной @nameCol меняем и сам запрос и имена столбцов.